728x90
java 에서 primitive type 형 숫자들중 가장 큰 자릿수를 지원하는 Long 형이나 Double 형의 최대값은
Long.MAX_VALUE = +9,223,372,036,854,775,807
Double.MAX_VALUE = 1.79769313486231570e+308d
둘다 8바이트이고, 자릿수를 계산해보면 19, 20 자리 정도이다. 이런 자릿수보다 더 큰 숫자를 표현하려면 어떻게 해야할까.
java 에서 BigInteger(java.math.BigInteger) 를 사용하면 큰 숫자를 표현가능하다. 예를 들어 1 부터 100 까지 숫자를 차례로 곱해서 결과값을 구하는 프로그램은 다음과 같이 표현할 수 있다.
import java.math.BigInteger;
public class BigInt {
public static void main(String[] args) {
BigInteger a = new BigInteger("1");
BigInteger b = new BigInteger("1");
int i = 0;
for (i = 0; i < 100; i++) {
a = a.add(BigInteger.ONE);
b = b.multiply(a);
}
System.out.println("big is = " + b.toString());
System.out.println("long MAX_VALUE = " + Long.MAX_VALUE);
System.out.println("double MAX_VALUE = " + Double.MAX_VALUE);
}
}
결과값은 160 자리까지 나온다.
big is = 9425947759838359420851623124482936749562312794702543768327889353416977599316221476503087861591808346911623490003549599583369706302603264000000000000000000000000
long MAX_VALUE = 9223372036854775807
double MAX_VALUE = 1.7976931348623157E308
참고로 다음은 java primitive type 을 간단하게 설명한 링크이다.
'Engineering > Java' 카테고리의 다른 글
| blowfish 를 이용한 문자열 인코딩/디코딩 예제 (1) | 2013.10.30 |
|---|---|
| Spring jdbcTemplate 를 이용해서 프로시저/함수 호출 (0) | 2013.08.29 |
| Incorrect result size: expected 1, actual 0 에러메시지 해결 (0) | 2013.08.05 |
| c# enum Flags 를 java 코드로 변경 (0) | 2013.07.24 |
| Mac 에서 한글이 포함된 java 소스 컴파일시 warning: unmappable character for encoding EUC_KR (0) | 2013.07.23 |