#include<stdio.h>
int main(){
float x =5400.768;
printf("%f", x);
}
在上面的代码中,一旦执行程序,它将显示5400.768066作为输出,并带有3个额外的小数位。这是为什么?
答案 0 :(得分:0)
问题是floating point inaccuracy。基本上,该数字以32位存储,只能包含有限的精度,并且通常仅具有〜7个十进制数字。如果需要更高的准确性,可以使用64位值(也称为double
)。
答案 1 :(得分:0)
如果您想了解floats
如何存储在内存中,请查看此https://m.youtube.com/watch?v=f4ekifyijIg。
如果只想打印到小数点后3位,请使用printf("%.3f",variable_name);
。