c++高手进 float 精度问题,这个要是丢失精度的话应该小才对?为什么变大了?

2025-06-23 11:06:30
推荐回答(5个)
回答1:

32bi浮点只有约6个(不到7个)十进制有效数字..
而%.15lf设了小数点后15个数位的精度,有多余输出。
所以0.(150000)005960464中只有括号部分是精确的,其余的数值可以舍去,

回答2:

我猜后面的可能是内存里的东西,直接被读出来了,跟你的程序半毛钱关系都没有吧。

回答3:

因为%.15lf的意思是格式化输出小数点後15位,因此有了你现在的结果

回答4:

float应该用%f输出,而且你要输出的位数大于他的精度,所以后面是随机值,跟大小没关系

回答5:

float的有效精度好像只有6位的,再多了就没意义了,变大变小也就没有意义了