를 포함하는 일부 코드에서 경계 조건을 테스트하고 있었는데 BigDecimal
a BigDecimal
가 문자열로 초기화 될 때 "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