![]() |
1
29
因为A
具体来说,a
你可以把浮点看成是计算机做科学记数法的方式,但它是二进制的。
这个
精度
等于
数字2000000050有9个有效数字。上面的计算告诉我们,24位有效位不能容纳那么多有效位。2000000000之所以有效,是因为只有一个有效数字,所以它符合有效数字。
为了解决这个问题,您将使用
|
![]() |
2
3
很明显-50是一个舍入误差,当一个浮点值为20亿。 |
![]() |
3
3
您可能会发现这个技巧,以发现下一个可表示的价值有趣。
印刷品
|
![]() |
4
2
如果你考虑一个程序(C++),它可能会帮助你理解这种情况。它显示被四舍五入为相同浮点值的连续整数组:
输出:
这表示浮点的精度仅足以表示1999999850到199999999935之间的所有整数,错误地将其值记录为19999999872。其他值也是如此。这是上述有限存储空间的有形后果。 |
|
Rik Bloemers · for循环不接受任何浮点变量 3 年前 |
![]() |
zell · 为什么存储7个浮点数需要34字节? 3 年前 |
![]() |
Atharva Sunil Sathe · 如何删除任意数的小数点? 3 年前 |
![]() |
user1658887 · 为什么**2!=a*a一些彩车? 7 年前 |