关于Math.pow javascript的奇怪结果

时间:2018-02-21 12:23:17

标签: javascript

我试图重复一个角色N次,并遇到了Math.pow函数。 但是在控制台上检查时,结果对我来说没有任何意义。

Math.pow(10,16) - 1提供的结果 999999999999999

但为什么{{1}}提供 10000000000000000

2 个答案:

答案 0 :(得分:4)

您正在生成超过Number.MAX_SAFE_INTEGER值的结果,因此它们不再精确到单位。

这与JavaScript对数字使用64位浮点表示这一事实有关,因此在实践中,您只有大约16(十进制)的精度数字。

答案 1 :(得分:0)

与许多其他编程语言不同,JavaScript没有定义不同类型的数字,如整数,短整数,长整数,浮点数等。

JavaScript编号始终存储为双精度浮点数,符合国际IEEE 754标准。

此格式以64位存储数字,其中数字(分数)存储在位0到51中,指数存储在位52到62中,符号存储在位63中:

整数(没有句号或指数表示法的数字)最多可达15位数。