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 |