我正在测试一些涉及到的代码的边界条件BigDecimal
,并且注意到当aBigDecimal
用String初始化时,"1e2147483647"
它的行为异常。它似乎在0
和之间具有一个值1e-2147483647
。当我尝试打电话时intValue()
,我得到一个提示NegativeArraySizeException
。我应该注意,这2147483647
是系统上整数的最大值。我是在做错什么,还是这有问题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