【发布时间】:2016-03-08 23:31:45
【问题描述】:
它在内部是如何工作的?
它如何决定将0.29999999999999998 转换为0.3,即使0.3 不能用二进制表示?
这里还有一些例子:
scala> 0.29999999999999998
res1: Double = 0.3
scala> 0.29999999999999997
res2: Double = 0.3
scala> 0.29999999999999996
res3: Double = 0.29999999999999993
scala> 0.29999999999999995
res4: Double = 0.29999999999999993
【问题讨论】:
-
我访问了链接并了解为什么 0.3 表示为 0.2999999.. 但它没有解释机器如何将 0.2999999.. 转换为 0.3? (例如,它是否有存储在某处的映射表?)
标签: scala floating-point precision