在 Kotlin 中查找 Int
和 Long
整数的确切 min
和 max
值非常简单:
有符号的 32 位整数:
Int.MIN_VALUE // -2147483648
Int.MAX_VALUE // 2147483647
有符号的64位整数:
Long.MIN_VALUE // -9223372036854775808
Long.MAX_VALUE // 9223372036854775807
然而,如果我尝试打印
Float
或Double
类型的min
和max
值的范围,我将得到不平衡的数字(其中两个值都将使用科学计数法表示)。
带符号32位浮点数:
Float.MIN_VALUE // 1.4e-45
Float.MAX_VALUE // 3.4028235e38
已签名的64位浮点数:
Double.MIN_VALUE // 4.9e-324
Double.MAX_VALUE // 1.7976931348623157e308
为什么
Float
和Double
类型的正负值如此“不平衡”?
min
和max
的绝对值是相同的(或者说是"平衡的")。public const double MaxValue = 1.7976931348623157E+308;
public const double MinValue = -1.7976931348623157E+308;
Float.MIN_VALUE
和Float.MAX_VALUE
之所以如此不同,是因为它们分别是最接近 0 和最远离 0 的数字。 - Ben P.