Java 为什么Double.MIN_值不是负值
谁能解释一下为什么Java 为什么Double.MIN_值不是负值,java,numbers,floating-point,Java,Numbers,Floating Point,谁能解释一下为什么Double.MIN\u值实际上不是Double可以接受的最小值?它是一个正值,双精度当然可以是负值 我理解为什么它是一个有用的数字,但它似乎是一个非常不直观的名称,尤其是与Integer.MIN_VALUE相比。称之为Double.minimum\u POSITIVE或MIN\u INCREMENT或类似的将具有更清晰的语义 另外,Double可以接受的最小值是多少?是否为-Double.MAX_值?文档似乎没有说。双精度的最小值是double。负无限这就是为什么double
Double.MIN\u值实际上不是Double可以接受的最小值?它是一个正值,双精度当然可以是负值
我理解为什么它是一个有用的数字,但它似乎是一个非常不直观的名称,尤其是与Integer.MIN_VALUE
相比。称之为Double.minimum\u POSITIVE
或MIN\u INCREMENT
或类似的将具有更清晰的语义
另外,Double可以接受的最小值是多少?是否为-Double.MAX_值
?文档似乎没有说。双精度的最小值是double。负无限
这就是为什么double。最小值不是double
的最小值
由于double是浮点数,因此只能有最大的数字(精度较低)或最接近0的数字(精度较高)
如果你真的想要一个不是无穷大的双精度的最小值,那么你可以使用-double.MAX\u value
双精度的最小值是double。负的
这就是为什么double.MIN\u value
不是双精度的最小值
由于double是浮点数,因此只能有最大的数字(精度较低)或最接近0的数字(精度较高)
如果你真的想要一个不是无穷大的double的最小值,那么你可以使用-double.MAX_value
,因为对于浮点数,精度是很重要的,因为没有精确的范围
但是我同意应该给它起个更好的名字:)因为对于浮点数来说,精度非常重要,因为没有精确的范围
但我同意,它应该被命名为更好的名称:)IEEE 754格式为符号保留了一位,其余的位表示大小。这意味着它是围绕origo“对称”的(与整数值相反,整数值又有一个负值)。因此,随着符号位的改变,最小值与最大值完全相同,因此yes,-Double。MAX_value
是可以用Double
表示的最小实际数
我认为Double.MAX\u值
应该被视为最大值,在这种情况下,只需编写-Double.MAX\u值
就可以了。它还解释了为什么Double.MIN_值
是最小的正值(因为它代表了最小的可能大小)
当然,我同意这个名字有点误导。习惯了Integer.MIN_VALUE的含义,当我读到Double.MIN_VALUE是可以表示的最小绝对值时,我也有点惊讶。也许他们认为用一个表示最小可能值的常数是多余的,因为它只是一个远离最大值的-
)
(注意,也有Double.NEGATIVE _∞
,但我忽略了这一点,因为它被视为“特殊情况”,实际上并不代表任何实际数字。)
IEEE 754格式为符号保留了一位,其余的位表示大小。这意味着它是围绕origo“对称”的(与整数值相反,整数值又有一个负值)。因此,随着符号位的改变,最小值与最大值完全相同,因此yes,-Double。MAX_value
是可以用Double
表示的最小实际数
我认为Double.MAX\u值
应该被视为最大值,在这种情况下,只需编写-Double.MAX\u值
就可以了。它还解释了为什么Double.MIN_值
是最小的正值(因为它代表了最小的可能大小)
当然,我同意这个名字有点误导。习惯了Integer.MIN_VALUE的含义,当我读到Double.MIN_VALUE是可以表示的最小绝对值时,我也有点惊讶。也许他们认为用一个表示最小可能值的常数是多余的,因为它只是一个远离最大值的-
)
(注意,也有Double.NEGATIVE _∞
,但我忽略了这一点,因为它被视为“特殊情况”,实际上并不代表任何实际数字。)
这些常数与符号无关。如果你把一个“双”作为三个部分的组合:符号、指数和尾数,这就更有意义了。
Double.MIN_值实际上是指在齐平到零之前,当指数处于最小值时尾数可以假定的最小值。同样地,MAX_值可以理解为尾数的最大值,当指数处于最大值时,尾数可以假定,然后冲入无穷大
这两个更具描述性的名称可以是最大绝对值(verpositiy加非零)和最小绝对值(verpositiy加非无穷大)
有关详细信息,请查看标准。有一个修订版(2008年),但它只引入了更多java甚至不支持的格式(严格来说,java甚至不支持IEEE 754 1985的某些强制性功能,就像许多其他高级语言一样)。这些常量与符号无关。如果你把一个“双”作为三个部分的组合:符号、指数和尾数,这就更有意义了。
Double.MIN_值实际上是指在齐平到零之前,当指数处于最小值时尾数可以假定的最小值。锂
/**
* A constant holding the smallest positive nonzero value of type
* <code>double</code>, 2<sup>-1074</sup>. It is equal to the
* hexadecimal floating-point literal
* <code>0x0.0000000000001P-1022</code> and also equal to
* <code>Double.longBitsToDouble(0x1L)</code>.
*/