I tested the boundary conditions for some code using BigDecimal , and I noticed that when a BigDecimal initialized to String "1e2147483647" , it behaves unexpectedly. It seems to have a value between 0 and 1e-2147483647 . When I try to call intValue() , I get a NegativeArraySizeException . I should note that 2147483647 is the maximum integer value in my system. Am I doing something wrong, or is this a problem with 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
java bigdecimal
DJMatch3000 Jul 01 '15 at 19:53 2015-07-01 19:53
source share