W poniższym programie wynik jest następujący: 0.0
jest uważany za mniejszy niż Double.MIN_VALUE
. Czemu?Dlaczego tu kończy się autoboxing/unboxing?
Mamy rozwiązanie (pracujemy tylko z Doubles
i używamy compareTo
) i chcę zrozumieć, dlaczego rozpakowywanie się tutaj nie udaje.
import java.util.Date;
import java.util.Calendar;
import java.math.BigDecimal;
public class Test {
public static void main(String[] args) {
double max = 99999.9999;
double min = Double.MIN_VALUE;
Double test = 0.0;
System.out.println(max > test); // expect true; is true
System.out.println(test > min); // expect true; is false
}
}
Przechodzę, aby dodać link do poprzedniego pytania SO, które ma doskonałą odpowiedź z @ aioobe. IMO Sun powinien nazwać tę stałą czymś bardziej intuicyjnym, ale ten statek płynął. http://stackoverflow.com/questions/3884793/minimum-values-and-double-min-value-in-java – Perception