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 를 이용한 문자열 인코딩/디코딩 예제 (0) | 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 |