This question already has answers here:
My floating point number has extra digits when I print it
(2个答案)
4年前关闭。
我很难打印float变量。它给了我额外的数字,不应该在那里。
这是示例:
这显然是错误的输出。有什么建议么?
(2个答案)
4年前关闭。
我很难打印float变量。它给了我额外的数字,不应该在那里。
这是示例:
float number;
char temp[50];
fgets ( temp, sizeof temp, fr ); //reading string from file, example: 99.10
number=atof(temp);
printf("%lf",number); //console output: 99.101563
这显然是错误的输出。有什么建议么?
最佳答案
此输出没有任何意外。 99.10
在IEEE754中不能完全表示。如果需要,请更改格式以将输出限制为两位小数:
printf("%.2f", number);
关于c - float 打印提供了额外的数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29595283/
10-11 03:45