/* * "Floating point is strange" example 2. */ #include int main(void) { double fsmall = 1e-10; double fbig = 1e10; double temp1 = fbig; for (int i = 0; i < 10000; ++i) temp1 += fsmall; double temp2 = 0.0; for (int i = 0; i < 10000; ++i) temp2 += fsmall; temp2 += fbig; printf("%g\n", temp1); printf("%g\n", temp2); /* uncomment for more about why temp1 != temp2 printf("%.15f\n", temp1); printf("%.15f\n", temp2); */ if (temp1 == temp2) printf("equal\n"); else printf("not equal\n"); return 0; }