반응형

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();


반응형

+ Recent posts