PersesTitan(페르) 기술블로그

[Java][BigDecimal] RoundingMode 올림, 반올림, 내림 구현하기 본문

Language/Java

[Java][BigDecimal] RoundingMode 올림, 반올림, 내림 구현하기

PersesTitan(페르) 2023. 1. 21. 13:17

HALF_UP(반올림)

예시 코드

BigDecimal a1 = new BigDecimal("10");
BigDecimal a2 = new BigDecimal("3");

BigDecimal b1 = new BigDecimal("10");
BigDecimal b2 = new BigDecimal("6");

System.out.println(a1.divide(a2, 2, RoundingMode.HALF_UP));
System.out.println(b1.divide(b2, 2, RoundingMode.HALF_UP));

출력

본래 값

  • 1.66666666666666....
  • 3.33333333333333....
3.33
1.67

초기값결과

5.5 5
2.5 2
1.6 2
1.1 1
1.0 1
-1.0 -1
-1.1 -1
-1.6 -2
-2.5 -2
-5.5 -5

UP(올림)

예시 코드

BigDecimal a1 = new BigDecimal("10");
BigDecimal a2 = new BigDecimal("3");

BigDecimal b1 = new BigDecimal("10");
BigDecimal b2 = new BigDecimal("6");

System.out.println(a1.divide(a2, 2, RoundingMode.UP));
System.out.println(b1.divide(b2, 2, RoundingMode.UP));

출력

본래 값

  • 1.66666666666666....
  • 3.33333333333333....
3.34
1.67

초기값결과

5.5 5
2.5 2
1.6 1
1.1 1
1.0 1
-1.0 -1
-1.1 -1
-1.6 -1
-2.5 -2
-5.5 -5

DOWN(내림)

예시 코드

BigDecimal a1 = new BigDecimal("10");
BigDecimal a2 = new BigDecimal("3");

BigDecimal b1 = new BigDecimal("10");
BigDecimal b2 = new BigDecimal("6");

System.out.println(a1.divide(a2, 2, RoundingMode.DOWN));
System.out.println(b1.divide(b2, 2, RoundingMode.DOWN));

출력

본래 값

  • 1.66666666666666....
  • 3.33333333333333....
3.33
1.66

초기값결과

5.5 6
2.5 3
1.6 2
1.1 2
1.0 1
-1.0 -1
-1.1 -1
-1.6 -1
-2.5 -2
-5.5 -5

HALF_DOWN(음수 기준 반올림)

예시 코드

BigDecimal a1 = new BigDecimal("-10");
BigDecimal a2 = new BigDecimal("3");

BigDecimal b1 = new BigDecimal("-10");
BigDecimal b2 = new BigDecimal("6");
        
System.out.println(a1.divide(a2, 2, RoundingMode.HALF_DOWN));
System.out.println(b1.divide(b2, 2, RoundingMode.HALF_DOWN));

출력

본래값

  • -3.3333333333333333333...
  • -1.6666666666666666666...
-3.33
-1.67

초기값결과

5.5 6
2.5 2
1.6 2
1.1 1
1.0 1
-1.0 -1
-1.1 -1
-1.6 -2
-2.5 -2
-5.5 -6