Javascript Infinity添加和相乘

时间:2017-03-10 22:12:18

标签: javascript node.js

为什么Number.MAX_VALUE + 10 = 1.7976931348623157e + 308(与Number.MAX_VALUE相同)但是Number.MAX_VALUE * 2 = Infinity?

1 个答案:

答案 0 :(得分:3)

JavaScript使用a floating point representation,其中52位可用于分数,而11位则保留给指数。

数字的精度取决于指数。对于1e308,此精度约为1e292。因此,添加到Number.MAX_VALUE的任何较小的内容都不会改变它。但是,如果你确实添加了一些足以改变分数中某个位的东西(比如1e292),那么数字就会改变。由于此表示中的数字不大于Number.MAX_VALUE,但Infinity除外,后者是您得到的值。