본문 바로가기

Java/본격 Java 기타클래스

[Java] BigDecimal 클래스

BigDecimal 클래스

 - java.math 패키지에 있으며 정확한 실수끼리의연산을 위한 클래스
 - 정확한 실수끼리의 연산을 위한 클래스
 - 주요메소드
 리턴타입 / 메소드명 및 설명
 BigDecimal / abs() : 절대값으로 리턴
 BigDecimal / add(BigDecimal val) : BigDecimal끼리의 덧셈
 BigDecimal / divide(BigDecimal val) : BigDecimal끼리의 나눗셈
 double / doubleValue() : BigDecimal를 double형 데이터로 변환
 float / floatValue() : BigDecimal를 float형 데이터로 변환
 int / intvalue() : BigDecimal를 int형 데이터로 변환
 long / longValue() : BigDecimal를 long형 데이터로 변환
 BigDecimal / mod(BigDecimal m) : BigDecimal끼리의 나머지 연산
 BigDecimal / multiply(BigDecimal val) : BigDecimal끼리의 곱셈
 BigDecimal / pow(int exponent) : BigDecimal의 exponent거듭제곱
 BigDecimal / subtract(BigDecimal val) : BigDecimal 뺄셈

.

.

double형 실수를 계산할 때 소수점 아래로 정리되지않는 숫자들이 나오는 경우가 있다.

이런 경우를 대비해서 BigDecimal이라는 클래스를 이용한다.

.

.

예제

import java.math.*;

class DoubleBigDecimal{
	public static void main(String[] args) {
		double d1 = 1.6, d2 = 0.1;
		System.out.println("두 실수의 덧셈 : " + (d1 + d2)); // 1.7000000000000002
		System.out.println("두 실수의 곱셈 : " + (d1 * d2)); // 0.16000000000000003

		BigDecimal d3 = new BigDecimal(1.6);
		BigDecimal d4 = new BigDecimal(0.1);
		System.out.println("두 실수의 덧셈 : " + d3.add(d4)); // 1.7000000000000000943689570931383059360086917877197265625
		System.out.println("두 실수의 곱셈 : " + d3.multiply(d4)); // 0.16000000000000001776356839400250513981617245258550338233035330174139354575402194313937798142433166503

		BigDecimal d5 = new BigDecimal("1.6");
		BigDecimal d6 = new BigDecimal("0.1");
		// BigDecimal인스턴스 생성시 반드시 문자열로 실수를 입력해야 함
		System.out.println("두 실수의 덧셈 : " + d5.add(d6)); // 1.7
		System.out.println("두 실수의 곱셈 : " + d5.multiply(d6)); // 0.16
	}

}
728x90
반응형

'Java > 본격 Java 기타클래스' 카테고리의 다른 글

[Java] StringTokenizer 클래스  (0) 2020.07.02
[Java] 랜덤 클래스 - 로또 번호 만들기  (0) 2020.07.02
[Java] Math 클래스  (0) 2020.07.02
[Java] BigInteger 클래스  (0) 2020.07.02
[Java] Wrapper클래스  (0) 2020.07.02