이중 값 입력에서 InputMismatchException 오류 문제 해결
이중 값으로 작업할 때 Scanner.nextDouble()을 사용할 때 InputMismatchException이 발생하는 것이 일반적입니다. 입력을 읽습니다. 이 예외는 사용자가 소수점이 없는 문자열이나 정수와 같은 유효하지 않은 double 값을 입력할 때 발생합니다.
다음 코드를 고려하세요.
public double checkValueWithin(int min, int max) { double num; Scanner reader = new Scanner(System.in); num = reader.nextDouble(); // Throws InputMismatchException if input is invalid while (num < min || num > max) { System.out.print("Invalid. Re-enter number: "); num = reader.nextDouble(); } return num; }
이 코드는 다음에 대한 사용자 입력의 유효성을 검사합니다. 지정된 범위 내의 이중 값. 그러나 사용자가 "1.2"(점을 소수 구분 기호로 사용)와 같은 값을 입력하면 InputMismatchException이 발생합니다.
이 문제를 해결하려면 대신 쉼표(,)를 사용해야 합니다. 이중 값을 입력할 때 소수 구분 기호로 점(.)을 사용합니다. 예를 들어 "1.2" 대신 "1,2"를 입력합니다. 또는 Scanner.next()와 같은 다른 메서드를 사용하고 입력을 이중으로 수동으로 구문 분석하여 발생할 수 있는 모든 예외를 처리할 수 있습니다.
위 내용은 왜 Scanner.nextDouble()에서 Double 값을 입력할 때 InputMismatchException이 발생합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!