# 최소 지폐 수 계산 금액단위가 조 단위를 넘어서면 아래와 같은 에러가 생기는 데 이유가 뭔 지 알려주세요! Exception in thread "main" java.lang.NumberFormatException: For input string: "1498762638763" at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) at java.base/java.lang.Integer.parseInt(Integer.java:668) at java.base/java.lang.Integer.parseInt(Integer.java:784) at CountingBill.main(CountingBill.java:5) #### CODE <a class='btn btn-default' href='/codes/68000'>Link</a> ``` public class CountingBill { public static void main(String[] args) { int totalAmount = Integer.parseInt(args[0]); int fiftykCount = totalAmount / 50000; int remainFKC = totalAmount % 50000; int tenkCount = remainFKC / 10000; int remainTKC = remainFKC % 10000; int fivekCount = remainTKC / 5000; int remainFiveKC = remainTKC % 5000; int onekCount = remainFiveKC / 1000; int remainOneKC = remainFiveKC % 1000; int billcount = fiftykCount + tenkCount + fivekCount + onekCount; System.out.println( "5만원 x " + fiftykCount + System.lineSeparator() + "1만원 x " + tenkCount + System.lineSeparator() + "5천원 x " + fivekCount + System.lineSeparator() + "1천원 x " + onekCount + System.lineSeparator() + "-----------" + System.lineSeparator() + "총 장수: " + billcount + "장" + System.lineSeparator() + "금액: " + (totalAmount - remainOneKC) + "원" + System.lineSeparator() + "할인: " + remainOneKC + "원"); } } ``` #### INPUT ``` 152365 ``` #### OUPUT ``` 5만원 x 3 1만원 x 0 5천원 x 0 1천원 x 2 ----------- 총 장수: 5장 금액: 152000원 할인: 365원 ```
## 정수의 범위를 넘는 경우 문제가 생깁니다. 정수는 다룰 수 있는 숫자의 범위가 정히져있기 때문이죠. 조단위 값을 입력하게 되면 사용자 입력을 정수로 변환하는 코드 즉, `parseInt(args[0])`에서 정수 변환에 실패하게 되어 에러가 발생합니다. 더 자세한 내용은 "자바 조단위 숫자" 정도로 구글링해보세요