PIC C float hatası > < karşılaştırma

Başlatan alikilavuz, 18 Kasım 2011, 14:43:50

Erhan YILMAZ


Salih

#16
Bende katkıda bulunayım biraz,
İki float sayıyı şu şekilde  karşılaştırabiliriz.

tolerans = 0.00001
(float1 - Float2) < tolerans

Önceden bir tolerans değeri belirlenir. İki float değişken farkı bu toleransdan küçük ise eşit
kabul edilir.

z


tolerans = 0.00001
|(float1 - Float2)| < tolerans

Önceden bir tolerans değeri belirlenir. İki float değişken farkınin mutlak degeri bu toleransdan küçük ise eşit
kabul edilir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

kantirici

Bu float sayılar benimde çok kafamı karşıtırıyor.Üstadlar bu konuda genel bir yazı yazabilseler çok faydalı olabilir.

cicjoe

#include <stdio.h>

int main()
{
   float f = 10.0f;
   int i;
   for (i = 0; i < 20; i++)
   {
      printf("%f\n", f);
      f += 0.1f;
   }
}


10.000000
10.100000
10.200001
10.300001
10.400002
10.500002
10.600002
10.700003
10.800003
10.900003
11.000004
11.100004
11.200005
11.300005
11.400005
11.500006
11.600006
11.700006
11.800007
11.900007
Press any key to continue . . .

3. satira bakilirsa 10.200001 oldugunu goruyoruz. aslinda 10.200000 olmasi gerekirdi.