본문 바로가기

# 02/Java

[윤성우 열혈자바] 20-2. BigInteger 클래스와 BigDecimal 클래스

반응형

매우 큰 정수 표현 위한 java.math.BigInteger 클래스 - immutable 인스턴스임!!


public static void main(String[] args) {


// long형으로 표현 가능한 값의 크기 출력

System.out.println( "최대 정수 : " + Long.MAX_VALUE );

System.out.println( "최소 정수 : " + Long.MIN_VALUE );

System.out.println();



// 매우 큰 수를 BigInteger 인스턴스로 표현 - "" 따옴표 무조건 해줘야함!!!(숫자 표현 불가하기 떄문)

BigInteger big1 = new BigInteger("100000000000000000000000000");

BigInteger big2 = new BigInteger("-99999999999999999999999999");



// BigInteger 기반 덧셈 연산

BigInteger r1 = big1.add(big2);

System.out.println( "덧셈 결과 : " + r1 );



// BigInteger 기반 곱셈 연산

BigInteger r2 = big1.multiply(big2);

System.out.println( "곱셈 결과 : " + r2 );

System.out.println();



// 인스턴스에 저장된 값을 int형 정수로 반환

int num = r1.intValueExact();

System.out.println( "From BigInteger : " + num );


}









오차 없는 실수 표현 위한 BigDecimal 클래스 - immutable 인스턴스임!!


public static void main(String[] args) {


"" 따옴표를 해줘야지 BigDecimal 형태로 저장하게 되어 오차가 생기지 않는다.

따옴표 하지 않으면 double로 저장하게 되는데 그 즉시 오차가 발생할 수 있다.

BigDecimal d1 = new BigDecimal ("1.6");

BigDecimal d2 = new BigDecimal ("0.1");

System.out.println( "덧셈 결과 : " + d1.add(d2) );

System.out.println( "곱셈 결과 : " + d1.multiply(d2) );


}


덧셈                public BigDecimal add (BigDecimal augend)

뺄셈                public BigDecimal subtract (BigDecimal subtrahend)

곱셈                public BigDecimal multiply (BigDecimal multiplicand)

나눗셈             public BigDecimal divide (BigDecimal divisor)






반응형