为什么最小值大于零?
Why is the minimal value greater than zero?
我正在测试 JavaScript 中的数字,这时我注意到发生了一些奇怪的事情。
为什么 Number.MIN_VALUE
大于 0
?我预计它会是一个非常小的负值。
console.log(Number.MIN_VALUE > 0);
它背后是否有一些数学原理,还是 JavaScript 精度错误?
Number.MIN_VALUE:可表示的最小正数——即最接近零的正数(实际上不是零)。
当您 运行 console.log(Number.MIN_VALUE);
时,您将看到输出为 5e-324
。
我可能会补充一点,您所期望的可能是 Number.MIN_SAFE_INTEGER
或 Number.NEGATIVE_INFINITY
Number.MIN_VALUE
的值等于 5e-324
。这可以在下面显示。
console.log(Number.MIN_VALUE);
如您所见,值为5e-324
。
这是浮点精度内可以显示的最小正数(浮点精度与 0.1 + 0.2
错误有关)。
这是您最接近 0
的地方。
技术最小值是Number.NEGATIVE_INFINITY
。
console.log(Number.NEGATIVE_INFINITY);
但是,这并不是真正的“数值”,因为该值为-Infinity
,无法用明确的数字表示。
我正在测试 JavaScript 中的数字,这时我注意到发生了一些奇怪的事情。
为什么 Number.MIN_VALUE
大于 0
?我预计它会是一个非常小的负值。
console.log(Number.MIN_VALUE > 0);
它背后是否有一些数学原理,还是 JavaScript 精度错误?
Number.MIN_VALUE:可表示的最小正数——即最接近零的正数(实际上不是零)。
当您 运行 console.log(Number.MIN_VALUE);
时,您将看到输出为 5e-324
。
我可能会补充一点,您所期望的可能是 Number.MIN_SAFE_INTEGER
或 Number.NEGATIVE_INFINITY
Number.MIN_VALUE
的值等于 5e-324
。这可以在下面显示。
console.log(Number.MIN_VALUE);
如您所见,值为5e-324
。
这是浮点精度内可以显示的最小正数(浮点精度与 0.1 + 0.2
错误有关)。
这是您最接近 0
的地方。
技术最小值是Number.NEGATIVE_INFINITY
。
console.log(Number.NEGATIVE_INFINITY);
但是,这并不是真正的“数值”,因为该值为-Infinity
,无法用明确的数字表示。