본문 바로가기

오류 노트

[백준] NumberFormat - java.lang.NumberFormatException

반응형

백준 문제

문제
꼬마 정민이는 이제 A + B 정도는 쉽게 계산할 수 있다. 이제 A + B + C를 계산할 차례이다!

입력
첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 10^12)이 공백을 사이에 두고 주어진다.

출력
A+B+C의 값을 출력한다.

 

오류 발생

NumberFormat java.lang.NumberFormatException

숫자값의 범위가 맞지 않아서 발생하는 오류다. int가 아니라 long으로 변경하면 해결된다. 

int의 범위는 약 -2,147,483,648부터 2,147,483,647까지이기 때문에 이 범위를 초과하는 값을 표현할 수 없다.

 

해결 방법

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
	    Scanner sc = new Scanner(System.in);
	    long A,B,C;
	    
	    A = sc.nextLong();
	    B = sc.nextLong();
	    C = sc.nextLong();
	    
	    System.out.println(A+B+C);
	}
}

A,B,C 변수를 long 형으로 바꿔주면 해결된다.

런타임 에러

많은 사람들이 런타임 오류에서 헤매는 것 같다. 데이터 타입의 범위가 중요하다는 사실을 잊어서는 안 된다. 

반응형