浮点无法准确打印

SUM*_*PTA -1 c floating-point

可能重复:
C中的浮点问题

#include<stdio.h>
main()
{
        int a,b;
        float f;
        scanf("%2d%3d%4f",&a,&b,&f);
        printf("%d %d %f",a,b,f);
}
Run Code Online (Sandbox Code Playgroud)

当我运行这个程序并输入2 4 56.8时,它给出输出2 4 56.799999 .....但我希望2 4 56.8 ....为什么会这样?

wal*_*lyk 6

那是正确的.浮点数是近似值.正如0.33333333是1/3的近似值,56.7999999是56.8的近似值.0.1没有确切的浮点表示.

看看已写的一些内容: