[자바코딩] parseInt 문제

gnoesnooj·2021년 11월 7일

Integer.parseInt(string s, int radix) -> s를 radix진수로 변환한 후 int로 리턴

String a = "45";
int num = Integer.parseInt(a,10);
System.out.print(num); // 45 출력

45 정상적으로 출력이 된다. 그런데 ?

String a = "45";
int num = Integer.parseInt(a,2);
System.out.print(num); // error !

출력이 되지 않는다.

이와 같은 오류가 나온다.
.
.
.

해결

parseInt를 찾아봤다.

읭? 99를 8진수로 못바꾼다..?

143으로 표현할 수 있지 않은가 ?

parseInt("99",8)을 구글링 했다.

Alex shin 이라는 친구가 5년전 똑같은 고민을 했다..

이에 대한 답변

그렇다. parseInt(String, int)stringint 진수로 바꿔주는게 아니라, Stringint 진수일 때, 10진수로 어떻게 읽느냐에 대한 메소드였다.

99는 8진수로 표현할 수 있는 값이 아니기 때문에 NumberFormatException이 발생하는 것이었다.

따라서 위에 (45,3) 가 아닌 (1200, 3) 을 넣어야한다. 45가 정상적으로 출력된다.

*** 참고 : https://coderanch.com/t/668292/java/parseInt-throws-NumberFormatException

profile
누구나 믿을 수 있는 개발자가 되자 !

0개의 댓글