가능한 중복 :
Addition for BigDecimal예기치 않은 BigDecimal 결과입니다. 1 1. 확실 3 개 결과로 나눈 이유
나는 분명 뭔가 빠진 것 같은 느낌이 있지만, 그것이 무엇인지 알아낼 수 없습니다. BigDecimal
을 사용하여 두 숫자 사이의 소수 부분을 가져 오려고합니다. 아주 간단한 경우, 1.00을 3.00으로 나눈 값은 0이어야합니다. (3) 반복. 그러나 나는 1.00의 결과를 얻는다.
BigDecimal num = new BigDecimal(1.00).setScale(2);
BigDecimal divisor = new BigDecimal(3.00).setScale(2);
num.divide(divisor, BigDecimal.ROUND_HALF_UP);
System.out.print(num);
결과가 1.00이고 이유를 파악할 수 없습니까?
+1 BigDecimal (그리고 BigInteger가 사용하는)은 변경할 수 없으므로이 작업을 수행해야합니다. –
아, 고마워. 문서에서 첫 번째 단어 임에도 불구하고 나는 그것을 완전히 놓쳤습니다. –