java(자바) - 정확한 숫자계산 할때 사용하는 빅데시멀(BigDecimal) 정리(형변환,선언,사칙연산)
java(자바) - 정확한 숫자계산 할때 사용하는 빅데시멀(BigDecimal) 정리(형변환,선언,사칙연산)
자바에서 숫자값 계산을 할때 int, double등등을 사용하면 소숫점 값이 오차를 보이는데
오차를 만들지 않게 정확한 계산을 할때 사용합니다.
*선언
BigDecimal 변수명 = new BigDecimal(String숫자값);
BigDecimal num1 = new BigDecimal("1000.55");
BigDecimal num2 = new BigDecimal("0.5");
*사칙연산
num1.add(num2); //덧셈 num1 + num2
num1.subtract(num2); //뺄셈 num1 - num2
num1.multply(num2); //곱셈 num1 * num2
num1.multiply(num2); //나눗셈 num1 / num2
*나눗셈 소수점처리
num1.divide(bdcl2 , 2(소수점자리수), BigDecimal.ROUND_UP); //올림
num1.divide(bdcl2 , 4, BigDecimal.ROUND_DOWN); //버림
num1.divide(bdcl2 , 3, BigDecimal.ROUND_HALF_UP); //반올림
num1.divide(bdcl2 , 1, BigDecimal.ROUND_HALF_DOWN); //반내림
*비교
num1.compareTo(num2);
//num1이 작으면 1 로 return
//num1이 같으면 0 로 return
//num1이 더크면 1 로 return
*소수점 처리
num1.setScale(소수점자릿수, BigDecimal.ROUND_UP)); //올림
num1.setScale(1, BigDecimal.ROUND_UP)); //올림
*타입변환
//빅데시멀(BigDecimal) -> 스트링(String)
num1.toPlainString();
//빅데시멀(BigDecimal) -> int/float/long 등
num1.intValue();
num1.floatValue();
num1.longValue();