Java

BigDecimal 기본 사용법

꿀승 2025. 1. 15. 16:32
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