小编典典

为什么 Double.MIN_VALUE 不是负数

all

任何人都可以阐明为什么Double.MIN_VALUE实际上不是双打可以采用的最小值吗?这是一个正值,Double 当然可以是负值。

我理解为什么它是一个有用的数字,但它似乎是一个非常不直观的名称,尤其是与Integer.MIN_VALUE.
调用它Double.SMALLEST_POSITIVEMIN_INCREMENT类似的会有更清晰的语义。

另外,双打可以取的最小值是多少?是-Double.MAX_VALUE吗?文档似乎没有说。


阅读 182

收藏
2022-08-01

共1个答案

小编典典

IEEE 754 格式为符号保留一位,其余位表示幅度。这意味着它在 origo 周围是“对称的”(与 Integer
值相反,它有一个负值)。因此,最小值与最大值相同,只是符号位发生了变化,所以 的,-Double.MAX_VALUE是您可以用 a
表示的最小可能实际数字double

我想Double.MAX_VALUE应该将其视为 最大幅度
,在这种情况下,简单地编写实际上是有意义的-Double.MAX_VALUE。它还解释了为什么Double.MIN_VALUE是最小的正值(因为它代表最小可能的幅度)。

但可以肯定的是,我同意这个命名有点误导。习惯了这个意思,当我读到这是可以表示的最小
绝对值Integer.MIN_VALUE时,我也有点惊讶。也许他们认为有一个代表最小可能值的常数是多余的,因为它只是远离:-)Double.MIN_VALUE
__-``MAX_VALUE

(注意,也有,Double.NEGATIVE_INFINITY但我忽略了这一点,因为它被视为“特殊情况”,实际上并不代表任何实际数字。)

这里有一篇关于这个主题的好文章。

2022-08-01