我在javascript中有这个号码 - 1234567890123456789
这个数字显然是一个神奇的数字,因为当被解释时,最低的两位数神奇地变成了零!!!!!!!!通过控制台运行它,你得到:1234567890123456800
但等等 - 更多。试试这个号码:12345678901234568999
控制台输出12345678901234570000
这里发生了什么?我最终迷失了自己的想法还是某种宇宙笑话?
答案 0 :(得分:1)
JavaScript中的数字是浮点数。因此,超过某个值的整数/数字很容易出现精确错误,正如您亲身经历的那样。
任何大于Number.MAX_SAFE_INTEGER或9007199254740991的数字都会遇到精度问题。也就是说,只保证最多15位数的整数。