Jak jest napisane w dokumentach ,
Double.MIN_VALUE jest stałą przechowującą najmniejszą DODATNI niezerową wartość typu double, 2 ^ (- 1074).
Sztuczka polega na tym, że mówimy o reprezentacji liczb zmiennoprzecinkowych. Typ danych double to 64-bitowy zmiennoprzecinkowy podwójnej precyzji IEEE 754. Punkty zmiennoprzecinkowe z łatwością reprezentują liczby od 1000000000000 do 0,0000000000000001 , jednocześnie maksymalizując precyzję (liczbę cyfr) na obu końcach skali. (Aby uzyskać więcej informacji, odnieś się do tego )
Mantysa, zawsze liczbą dodatnią , posiada znaczące cyfry numeru zmiennoprzecinkowej. Wykładnik wskazuje dodatnią lub ujemną moc podstawy, przez którą należy pomnożyć mantysę i znak. Cztery składniki są połączone w następujący sposób, aby uzyskać wartość zmiennoprzecinkową.
Pomyśl, że MIN_VALUE to minimalna wartość, jaką może reprezentować mantysa. Jako minimalne wartości reprezentacji zmiennoprzecinkowej jest minimalna wielkość, którą można przedstawić za pomocą tego. (Mogłem użyć lepszej nazwy, aby uniknąć tego zamieszania)
123> 10> 1> 0,12> 0,012> 0,0000123> 0,000000001> 0,0000000000000001
Poniżej znajduje się tylko FYI.
Zmiennoprzecinkowe podwójnej precyzji mogą reprezentować 2098 potęgi dwóch, od 2 ^ -1074 do 2 ^ 1023. Zdenormalizowane potęgi dwójki to te od 2 ^ -1074 do 2 ^ -1023; znormalizowane potęgi dwójki to te od 2 ^ -1022 do 2 ^ 1023. Odnieś się do tego i tego .