浏览器计算错误?

时间:2016-01-29 10:06:10

标签: math browser

我的朋友偶然发现了一个奇怪的错误(至少我认为这是一个错误)。当你在浏览器的控制台中乘以某个数字时,在我的情况下是1.4,那么当你将它乘以3,6和7时输出非常有趣。在Firefox中检查这些输出:

enter image description here

在Chrome中,它与Firefox中相同,在Edge和IE中它更有趣,乘法结果有6甚至更多:

enter image description here

我用Google搜索了但无法找到有关此错误的任何解释。有谁知道为什么浏览器在这个乘法中失败了?

编辑:下面的评论解释了为什么这个数字不仅仅是让我们说4.2但是很多数字得到了4.199999999999999。谢谢你引用我的答案。

但是,为什么这只发生在3,6和7而不是其他数字? (也许在数字高于10时会发生,但没有检查过。)

1 个答案:

答案 0 :(得分:1)

你的朋友偶然发现了数字的浮点表示。

以下引用来自这个答案:https://stackoverflow.com/a/21895757/210971

  

在大多数编程语言中,表示浮点数   很像科学记数法:带有指数和尾数(也是   称有效数字)。实际上,一个非常简单的数字,比如9.2   这一部分:

5179139571476070 * 2 -49
     

指数为-49且尾数为5179139571476070   因为不可能用这种方式表示一些十进制数   指数和尾数都必须是整数。其他   单词,所有浮点数必须是整数乘以整数幂   2。