Ich habe Randbedingungen für Code mit a getestet BigDecimal
und festgestellt, dass sich a beim BigDecimal
Initialisieren mit dem String "1e2147483647"
unerwartet verhält. Es scheint einen Wert zwischen 0
und zu haben 1e-2147483647
. Wenn ich versuche anzurufen intValue()
, bekomme ich eine NegativeArraySizeException
. Ich sollte beachten, dass dies 2147483647
der Maximalwert einer Ganzzahl auf meinem System ist. Mache ich etwas falsch oder ist das ein Problem mit BigDecimal
?
BigDecimal test = new BigDecimal("1e2147483647");
test.compareTo(new BigDecimal(0)); //Returns 1
test.compareTo(new BigDecimal("1e-2147483647")); //Returns -1
test.intValue(); //Throws NegativeArraySizeException