2012-11-08 6 views
1

numeric StringLong으로 변환하려고하지만 NumberFormatException이 표시됩니다.숫자 형식 문자열에 대한 예외 13363190467160024386을 Long으로 변환하는 중

나는 왜 일어나고

java.lang.NumberFormatException: For input string: "13363190467160024386" 

어떤 제안을 getting- 오전 예외는이 String 13363190467160024386

Long.parseLong (String를) 다음

에 대한 NumberFormatException이다는 무엇입니까?

+6

너무 길어서 길지 않습니다. – irreputable

답변

14

절대적으로 - 그 숫자는 Long.MAX_VALUE (9223372036854775807)보다 큽니다. 대신

사용 BigInteger :

BigInteger value = new BigInteger("13363190467160024386"); 
1

나는 그 숫자는 아마도 분명히 자바 하나가없는, 부호 long 결코 마음을하려고 서명 long

너무 큰 생각합니다. 하나 더 이유를 C#> 자바

2^64 = + 1.8446744e

2

Long의 범위 밖이기 때문에 19.

System.out.println(Long.MAX_VALUE); 
System.out.println("13363190467160024386"); 

인쇄 : -

9223372036854775807 
13363190467160024386 

당신은보다 큰 숫자를 저장하는 BigInteger를 사용해야합니다.

1

최대 롱은 다음과 같습니다

9223372036854775807 

귀하의 수가이보다 큰 :

13363190467160024386 
1

전화 번호는 2^63, 또는 약 9E18입니다 long의 한계를 초과합니다. 귀하의 전화 번호는 대략 1.3E14이며 오류가 발생합니다.

관련 문제