JavaScript

时间:2016-09-21 10:19:59

标签: javascript floating-point ieee-754

如果我在Chrome控制台中输入0.3,则会向我显示0.3

这基本上是这样说的:“你输入了一个内容为0.3的数字文字,为了方便起见,我在控制台中重播了那个表示,即使在引擎盖下,实际上也不能完全代表,我能想出的最佳近似值是0.30000000000000004“?

1 个答案:

答案 0 :(得分:2)

实际上,internal representation

0.299999999999999988897769753748434595763683319091796875

它可能已打印0.29999999999999999,这是内部值四舍五入为17位有效数字。四舍五入到17 digits is the conservative way to preserve any internal value。但在这种情况下,0.3也适用(毕竟,这就是你开始使用的),因为它比印刷的更短。

所以它没有接受你的字符串输入并回复它 - 它只是按照这种方式计算出来的(就像15位有效数字或更少的输入一样)。