728x90
반응형
SMALL
BigDeimal
개념
- Java에서 고정 소수점 또는 부동 소수점 연산의 정밀도를 유지하기 위해 사용되는 클래스로, 특히 금액 계산에서 많이 사용된다.
생성방법
- 팩토리 메서드 사용 : 안전하고 가독성이 좋음 해당방식으로 사용
BigDecimal value = BigDecimal.valueOf(123.45);
- 팩토리 메서드 사용 : 안전하고 가독성이 좋음 해당방식으로 사용
연산
덧셈 : A.add(B)
BigDecimal a = BigDecimal.valueOf("10.5"); BigDecimal b = BigDecimal.valueOf("2.3"); BigDecimal result = a.add(b); // 결과: 12.8
뺄셈 : A.subtract(B)
BigDecimal result = a.subtract(b); /
곱셈 : A.multiply(B)
BigDecimal result = a.multiply(b);
나눗셈 : A.divide(B, scale, RoundingMode)
스케일(정밀도) 지정
//두번째 인자인 2인 경우 소수점 둘째자리까지 처리 //RoundingMode.HALF_UP 이므로 소수점 둘째 자리에 반올림 // 나누어 떨어지지 않을 경우 스케일,라운딩모드 필수 //4.565217391304348 -> 4.57 BigDecimal result = a.divide(b, 2, RoundingMode.HALF_UP); //4.57
예외 방지 (나머지가 있는 경우)
BigDecimal result = a.divide(b, RoundingMode.HALF_UP);
RoundingMode 종류
RoundingMode 설명 HALF_UP 5 이상일 때 올림 (일반적인 반올림). HALF_DOWN 5 이하일 때 내림. UP 무조건 올림. DOWN 무조건 내림. CEILING 양수 방향으로 올림. FLOOR 음수 방향으로 내림. HALF_EVEN 5일 때 가장 가까운 짝수로 반올림(은행가 반올림). UNNECESSARY 정확히 나누어떨어질 때만 사용 가능, 그렇지 않으면 예외 발생.
나머지 계산 : A.remainder(B)
BigDecimal remainder = a.remainder(b);
값비교
int comparison = a.compareTo(b); // a가 b보다 크면 1, 작으면 -1, 같으면 0 if (a.compareTo(b) > 0) { System.out.println("a is greater than b"); } boolean isEqual = a.equals(b); // 값과 스케일(소수점 자리수)까지 비교
728x90
반응형
LIST