我正在测试一些涉及a的代码的边界条件BigDecimal,我注意到当BigDecimal使用String初始化a时,"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
Run Code Online (Sandbox Code Playgroud)