Estaba probando condiciones de límite en algún código que involucraba a BigDecimal
, y noté que cuando BigDecimal
se inicializa a con String, "1e2147483647"
se comporta inesperadamente. Parece tener un valor entre 0
y 1e-2147483647
. Cuando intento llamar intValue()
, obtengo un NegativeArraySizeException
. Debo notar que 2147483647
es el valor máximo de un número entero en mi sistema. ¿Estoy haciendo algo mal o es un problema 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