Floating point karşılaştırması kesin midir?
#include <stdio.h> int main() { float f=0.0f; int i; for(i=0;i<10;i++) f = f + 0.1f; if(f == 1.0f) printf("f is 1.0 \n"); else printf("f is NOT 1.0\n"); return 0; }
Böyle bir karşılaştırma yerine şöle bir karşılaştırma kullanalım…
#include <stdio.h> int main() { float f=0.0f; int i; for(i=0;i<10;i++) f = f + 0.1f; if ((f-1.0f)<0.00000000001f) printf("f is 1.0 \n"); else printf("f is NOT 1.0\n"); return 0; }
Bir cevap yazın