BigDecimal타입의 사칙연산

by 조쉬 posted Dec 22, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

엄청 큰 숫자형의 연산은 BigDecimal 형으로 변경 후 계산을 하면 좋습니다.

 

import java.math.BigDecimal;

public class Test {

 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