【发布时间】:2018-09-23 15:51:27
【问题描述】:
看这张图。(下划线是输入的。)
为什么 JavaScript Number 的结尾带有尾随零或不可预测的数字?
我用https://www.ecma-international.org/ecma-262/5.1/#sec-9.7检查了文档
但我找不到任何对这个问题有用的东西。
【问题讨论】:
-
我想你可以在这里找到答案:stackoverflow.com/questions/307179/…
-
这些数字比
Number.MAX_SAFE_INTEGER大,因此您会遇到问题。 -
所有 JavaScript 数字都是 IEEE 双精度浮点数。因此,它们的最大精度为 53 位。超过这个精度,你会在整数行中出现间隙。 What every programmer should know about floating point numbers)
-
我知道为什么会出现问题,我想知道数字末尾是否有规律?
-
我相信混淆只是关于控制台尝试将数字显示为整数值,即使在值实际存储为浮点数并且精度已经丢失之后。因此,如果您看到“1.1111111111111111e+16”,您就会知道它已转换为浮点数,对吧?