Ich habe Randbedingungen für Code mit a getestet BigDecimalund festgestellt, dass sich a beim BigDecimalInitialisieren mit dem String "1e2147483647"unerwartet verhält. Es scheint einen Wert zwischen 0und zu haben 1e-2147483647. Wenn ich versuche anzurufen intValue(), bekomme ich eine NegativeArraySizeException. Ich sollte beachten, dass dies 2147483647der 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