Java BigDecimal可能溢出的Bug
- 论坛
- Java BigDecimal可能溢出的Bug
26 浏览
Java BigDecimal可能溢出的Bug
我正在测试涉及BigDecimal
的代码的边界条件,并且我注意到当使用字符串"1e2147483647"
初始化BigDecimal
时,它的行为出乎意料。它似乎在0
和1e-2147483647
之间有一个值。当我尝试调用intValue()
时,会抛出NegativeArraySizeException
异常。我应该指出,在我的系统上,2147483647
是整数的最大值。我是做错了什么,还是这是BigDecimal
的问题?
BigDecimal test = new BigDecimal("1e2147483647"); test.compareTo(new BigDecimal(0)); //返回1 test.compareTo(new BigDecimal("1e-2147483647")); //返回-1 test.intValue(); //抛出NegativeArraySizeException异常