sha*_*nbo 3 javascript numbers
在 Javascript 中,Number.MAX_VALUE最大的值是一个数字。我有一个问题
(Number.MAX_VALUE + 123) == Number.MAX_VALUE //true
(Number.MAX_VALUE + Number.MAX_VALUE) == Number.MAX_VALUE //false
Run Code Online (Sandbox Code Playgroud)
我无法理解。有人可以解释我吗?
在第一个示例中,您只需将您的数字增加一个非常小的数字:
123根据1.79^308是什么。所以你“失去”了一些精度:它不会改变数字。
在第二个中,您超过了最大值,因此您的数字不再是数字,而是Infinity。
console.log(Number.MAX_VALUE + 123);
console.log(Number.MAX_VALUE + Number.MAX_VALUE);
/* Is (Number.MAX_VALUE + Number.MAX_VALUE) a number? */
console.log(Number.isInteger(Number.MAX_VALUE + Number.MAX_VALUE));Run Code Online (Sandbox Code Playgroud)