2014-01-23 4 views
1

1000 자리 숫자를 처리하는 방법은 무엇입니까? 누구나 설명 할 수 있니?Java에서 1000 자리 숫자를 어떻게 처리 할 수 ​​있습니까?

내 코드;

Long sum = 1L; 
... 

if (String.valueOf(sum).length() == 1000) { 
    ... 
} 

하지만 아무도 설명 할 수 없습니까?

+2

'BigDecimal'에 대한 Google 검색 시도 – Matt

+2

질문이 명확하지 않으므로 먼저 약간의 연구를해야합니다. – DarthVader

+1

@SemihEker After ... 합계의 최대 길이는 Long.MIN_VALUE (즉, -9223372036854775808) 일 수 있습니다. 이는 1000 자리에서 멀리 떨어져 있습니다. Long 데이터 형식의 용량을 오버플로하는 연산은 결과의 최하위 64 비트를 포함하는 Long으로 끝납니다. 이것은 일반적으로 "정수 오버플로"라고합니다. 모든 프리미티브 (고정 길이 유형)는 가변 길이 유형을 사용해야하는 숫자가 더 많은 숫자를 정확하게 표현하기 위해 일종의 오버 플로우를 나타냅니다. JDK는 그 목적으로 BigInteger와 BigDecimal을 제공합니다. – Durandal

답변

5

BigInteger 클래스를 사용하면 임의의 긴 숫자 (컴퓨터 메모리가 허용하는 크기)를 처리 할 수 ​​있습니다.

링크하십시오 BigInteger 대신 http://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html

+0

답변 해 주셔서 감사합니다. BigInteger를 사용하고 해결했습니다. –

1

사용. 설명서 here을 참조하십시오.