■ 개발 정리/JAVA

BigDecimal 사칙연산 (더하기, 빼기, 곱하기, 나누기) , 소수점처리(올림, 버림, 반올림) , 실수비교 compareTo()함수

파코키 2018. 8. 30. 13:53

 

 

 

 

BigDecimal 사칙연산 (더하기, 빼기, 곱하기, 나누기) , 소수점처리(올림, 버림, 반올림) 

, 실수비교 compareTo()함수

 

 

1. 사칙연산 및 소수점 처리 ( BigDecimal 사용 )

 

BigDecimal bdcl1 = new BigDecimal("123.123");

BigDecimal bdcl2 = new BigDecimal("456.456");

 

더하기 : bdcl1.add(bdcl2);

빼기 : bdcl1.subtract(bdcl2);

곱하기 : bdcl1.multiply(bdcl2);

나누기 : 

올림 - bdcl1.divide(bdcl2 , 2(소수점자리수), RoundingMode.UP);

버림 - bdcl1.divide(bdcl2 , 4, RoundingMode.DOWN);

반올림 - bdcl1.divide(bdcl2 , 3, RoundingMode.HALF_UP);

반내림 - bdcl1.divide(bdcl2 , 1, RoundingMode.HALF_DOWN);

-- RoundingMode.UP과 RoundingMode.DOWN 는 숫자가 양수든 음수든 숫자의 절대값이 커지도록 올리고 작아지도록 버린다 ex) RoundingMode.UP : 5.5 -> 6 , -5.5 -> -6  | RoundingMode.DOWN : 5.5 -> 5 , -5.5 -> -5
만약 양수쪽으로 커지거나 작아지도록 올림, 버림을 사용하고 싶으면 RoundingMode.CEILING와 RoundingMode.FLOOR 를 사용하면 된다.

올림 - bdcl1.divide(bdcl2 , 2, RoundingMode.CEILING);
  ex) 5.5 -> 6   , -5.5 -> -5

버림 - bdcl1.divide(bdcl2 , 4, RoundingMode.FLOOR);
  ex) 5.5 -> 5   , -5.5 -> -6

 

 

2. 실수 비교 ( compareTo()함수 )

 

동일한 형을 비교 가능(float끼리, double끼리 등)

 

Float num1 = 2.7;

float num2 = 2.6;

 

num1.compareTo(num2);

   

비교대상

 

 

리턴 값 : 

비교대상이 동일한 값이면 : 0

비교대상이 작은경우 : -1

비교대상이 큰경우 : 1