为什么在JavaScript中0小于Number.MIN_值?

为什么在JavaScript中0小于Number.MIN_值?,javascript,node.js,numbers,double,Javascript,Node.js,Numbers,Double,使用Node.js,我计算表达式: 0 < Number.MIN_VALUE 0-Number.MAX\u VALUE返回trueNumber.MIN\u SAFE\u INTEGER@Vohuman:但是零不是比所有负数都大吗?Number.MIN\u SAFE\u INTEGER在Node.js 0.10.x中是未定义的。Number.MIN\u SAFE\u INTEGER在Node.js.10.x中是未定义的,有时人们忘记了e符号。提升为负指数的正数仍然是正数。我教过那些认为3*

使用Node.js,我计算表达式:

0 < Number.MIN_VALUE
0

令我惊讶的是,这返回了
true
。为什么呢?和:我如何才能得到最小的可供比较的数字?因为
number.MIN\u VALUE=5e-324=5 x 10^-324
0
大一点。

阅读更多。

数字。最小值是
5e-324
,即在浮点精度范围内可以表示的最小正数,即尽可能接近零。它定义了浮动给您的最佳分辨率


现在总的最小值是数值。负数
,虽然从严格意义上说它不是真正的数字。

Number。最小值
相当于5e-324,大于0。

使用
-Number.MAX\u值
代替Number.MIN\u值进行比较:


0>-Number.MAX\u VALUE
返回
true
Number.MIN\u SAFE\u INTEGER
@Vohuman:但是零不是比所有负数都大吗?
Number.MIN\u SAFE\u INTEGER
在Node.js 0.10.x中是
未定义的。
Number.MIN\u SAFE\u INTEGER
在Node.js.10.x中是
未定义的,有时人们忘记了
e
符号。提升为负指数的正数仍然是正数。我教过那些认为
3**-2===-9
的高中生。感谢他们解释了这种行为,并指出了一个可行的选择:-)我真不敢相信我真的不得不查这个来找出我的代码为什么错了。我发誓,javascript,有时…我会说
数字。负无穷大
是最小的值(从这个意义上说,没有其他值可以比它小),但不是最小的。“小”一词表示小数量,即接近0的值,“大”表示远离零的值(-1000表示“大于”10)。所以从这个意义上说,
-Infinity
是相当大的,即使它是负数。
-Number.MAX\u VALUE
不等于
Number.MIN\u VALUE
。而且,
-Number.MAX_VALUE
是一个负数,所以你说的是
0>[负数]
,这总是正确的。这是正确的。我认为让人反感的是负指数
-324
。我教的高中生认为
3**-2===-9