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

PersesTitan·2023년 1월 21일
0

Java

목록 보기
10/16

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.55
2.52
1.62
1.11
1.01
-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.55
2.52
1.61
1.11
1.01
-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.56
2.53
1.62
1.12
1.01
-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.56
2.52
1.62
1.11
1.01
-1.0-1
-1.1-1
-1.6-2
-2.5-2
-5.5-6
profile
안녕하세요 페르세스 티탄입니다! 부족한 부분이 많이 있겠지만 잘부탁드립니다.

0개의 댓글