십진 정확성과 반올림 규칙을 명시합니다.
BigDecimal은 금융 계산처럼 정확한 십진수가 필요할 때 사용합니다. 문자열 생성자를 사용하고 divide에서는 나누어떨어지지 않을 경우 scale과 RoundingMode를 지정합니다.
문자열로 만든 19.90은 scale이 2인 정확한 십진수이고, multiply는 두 피연산자의 scale을 더하므로 3을 곱하면 59.70, 다시 0.90을 곱하면 scale 4의 53.7300이 됩니다. setScale(2, RoundingMode.HALF_UP)이 이를 소수 둘째 자리로 맞춰 53.73을 출력합니다. HALF_UP은 버리는 자리가 정확히 5일 때 올리고, HALF_EVEN은 짝수 쪽으로 보내 반올림이 한쪽으로 쏠리는 것을 줄입니다.
equals는 값과 scale을 함께 비교하고 compareTo는 수치 크기를 비교합니다. 연산 결과를 반환하므로 변수에 다시 저장해야 합니다.
통화별 최소 단위, 세금 계산 순서와 반올림 시점을 도메인 정책으로 고정합니다.
new BigDecimal(0.1)은 이미 부정확한 double 값을 가져옵니다.
직접 바꿔보세요15% 할인과 소수 둘째 자리 반올림을 적용하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.