This question already has answers here:
My floating point number has extra digits when I print it
                                
                                    (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