Can any one explain why we got this kind of output and also say me when " float is true " and "double is false" gets printed ?

#include<stdio.h> int main() { float i =0.1; double j =0.1; if(i == 0.1) puts("float is true\n"); else puts("float is false\n"); if(j == 0.1) puts("double is true\n"); else puts("double is false\n"); return 0; } ------------- Output: ------------- float is false double is true

8/25/2019 9:41:08 AM

Kiran Deep Naidu

1 Answer

New Answer


Floats and doubles are imprecise in computers, double less so than float. I suppose the issue comes from there. A few threads that discuss the matter (I suppose you can find many more): https://www.sololearn.com/discuss/1855448/?ref=app https://www.sololearn.com/discuss/1093191/?ref=app https://www.sololearn.com/discuss/1733175/?ref=app https://www.sololearn.com/discuss/1606645/?ref=app https://www.sololearn.com/discuss/1159244/?ref=app https://www.sololearn.com/discuss/796595/?ref=app