我的朋友偶然发现了一个奇怪的错误(至少我认为这是一个错误)。当你在浏览器的控制台中乘以某个数字时,在我的情况下是1.4,那么当你将它乘以3,6和7时输出非常有趣。在Firefox中检查这些输出:
在Chrome中,它与Firefox中相同,在Edge和IE中它更有趣,乘法结果有6甚至更多:
我用Google搜索了但无法找到有关此错误的任何解释。有谁知道为什么浏览器在这个乘法中失败了?
编辑:下面的评论解释了为什么这个数字不仅仅是让我们说4.2但是很多数字得到了4.199999999999999。谢谢你引用我的答案。
但是,为什么这只发生在3,6和7而不是其他数字? (也许在数字高于10时会发生,但没有检查过。)
答案 0 :(得分:1)
你的朋友偶然发现了数字的浮点表示。
以下引用来自这个答案:https://stackoverflow.com/a/21895757/210971
在大多数编程语言中,表示浮点数 很像科学记数法:带有指数和尾数(也是 称有效数字)。实际上,一个非常简单的数字,比如9.2 这一部分:
5179139571476070 * 2 -49
指数为-49且尾数为5179139571476070 因为不可能用这种方式表示一些十进制数 指数和尾数都必须是整数。其他 单词,所有浮点数必须是整数乘以整数幂 2。