1
11
浮点数只有24位精度,这不足以容纳数值中的位数。舍入不是由于解析,而是由于数字的大小。如果需要浮点,则必须使用double;如果需要任意精度,则必须使用BigDecimal。 |
2
2
另一个问题是,您正在处理一组有限的位来表示数字,并且可能会遇到其他舍入错误。而且,离0越远,就有越多的数字无法精确表示,因此进行舍入。 不要在需要知道确切数字的地方使用浮点数。 |
3
1
|
4
1
正如其他人所说,
其中显示:
|
5
0
|
6
0
浮动和双倍是有限的。它们只能将数字的小数部分精确地表示为两个小数的和。分数部分可以完全表示为某些级数的和,如: 1/2 + 0/4 + 1/8 + 1/16 + ... 不幸的是,有大量常用的数字永远无法完全表示,如: 1/3、1/7、1/9、5/11等。
有一些二进制十进制库可以精确地执行这些计算。他们的计算速度往往较慢,因为没有专门的硬件来加速他们的计算。而且,它们往往会占用更多的内存,因为您实际上是在存储一个数字列表。
|