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();
'IT > JAVA' 카테고리의 다른 글
[JAVA] 2차월 배열의 길이, 제곱함수, INT 자릿수 구하기 (0) | 2019.05.24 |
---|---|
java - 지정날짜의 월차이 차이 구하기 / 날짜 차이 구하기 / 윤년계산법 (0) | 2018.11.16 |
[java] controller 동적으로 url mapping하기 - 동적 주소 매핑 (0) | 2018.10.26 |
JAVA - 클라이언트 아이피 확인 (0) | 2018.08.23 |
java - 리스트 관련 / requestbody 한글깨짐 (0) | 2018.07.18 |