【发布时间】:2021-06-10 12:54:32
【问题描述】:
如何解释我得到的结果在前两次计算中以 92 结尾,在第三次计算中以 94 结尾?
console.log(Number.MAX_SAFE_INTEGER + 1); //...92
console.log(Number.MAX_SAFE_INTEGER + 2); //...92
console.log(Number.MAX_SAFE_INTEGER + 3); //...94
【问题讨论】:
-
奇怪,我在 Chrome 中得到 9007199254740992、9007199254740992 和 9007199254740994
-
Number.MAX_SAFE_INTEGER以外的数字无法准确表示,并且会四舍五入,这会导致数学错误。见:What Every Programmer Should Know About Floating-Point Arithmeti
标签: javascript data-structures