Possible Duplicate:
Floating point issue in C
#include<stdio.h>
main()
{
int a,b;
float f;
scanf("%2d%3d%4f",&a,&b,&f);
printf("%d %d %f",a,b,f);
}
当我运行该程序并输入2 4 56.8时,它给出的输出为2 4 56.799999 .....但是我希望2 4 56.8 ....为什么会这样?
最佳答案
那是对的。浮点数是近似值。正如0.33333333是1/3的近似值一样,56.7999999是56.8的近似值。 0.1没有精确的浮点表示形式。
查看一些已写的内容:
http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
http://www.hack3r.com/forum-topic/what-every-programmer-should-know-about-floating-point-arithmetic
关于c - 浮点打印不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10991505/