■ 개발 정리/JAVA

BigDecimal 사용

파코키 2018. 1. 9. 16:08

자바에서 실수 계산을 할때 정확한 값이 필요하면 BicDecimal형으로 변경후 계산한다.



예제)

import java.math.BigDecimal;


public static void main(String[] args) {


BigDecimal bdcl1 = new BigDecimal("12345678901234567899");

BigDecimal bdcl2 = new BigDecimal("12345678901234567890");


// 더하기

BigDecimal p_add = bdcl1.add(bdcl2);

// 빼기

BigDecimal p_sub = bdcl1.subtract(bdcl2);

// 곱하기

BigDecimal p_mul = bdcl1.multiply(bdcl2);

// 나누기 - 무조건 반올림

BigDecimal p_div1 = bdcl1.divide(bdcl2, BigDecimal.ROUND_UP);

// 나누기 - 소수점 4번째 자리에서 반올림.

BigDecimal p_div2 = bdcl1.divide(bdcl2, 4, BigDecimal.ROUND_UP);

 

System.out.println("덧셈 : " + p_add);

System.out.println("뺄셈 : " + p_sub);

System.out.println("곱셈 : " + p_mul);

System.out.println("나눗셈1 : " + p_div1);

System.out.println("나눗셈2 : " + p_div2);


}

}


덧셈 : 24691357802469135789

뺄셈 : 9

곱셈 : 152415787532388367613016309986130163110

나눗셈1 : 2

나눗셈2 : 1.0001 



===============================================================


BigDecimal의 형변환


- to int

int index = ((BigDecimal)dataMap.get("number")).intValue();