Home > Java > javaTutorial > How to Resolve InputMismatchException When Reading Double Values with Java Scanner?

How to Resolve InputMismatchException When Reading Double Values with Java Scanner?

Susan Sarandon
Release: 2024-12-09 06:15:16
Original
1023 people have browsed it

How to Resolve InputMismatchException When Reading Double Values with Java Scanner?

Scanner double value - InputMismatchException Resolved

Encountering an InputMismatchException when using scanner to read double values is a common issue faced by Java developers. This exception occurs when the token retrieved from the input does not match the expected data type or is out of range for that type.

Problem:

Consider the following code:

double gas, efficiency, distance, cost;
Scanner scanner = new Scanner(System.in);

System.out.print("Enter the number of gallons of gas in the tank: ");
gas = scanner.nextDouble();
System.out.print("Enter the fuel efficiency: ");
efficiency = scanner.nextDouble();
Copy after login

When running this code and inputting values such as "5.1" for both gas and efficiency, it throws an InputMismatchException.

Cause:

The default locale used by the scanner may not match the expected format of the input values. For example, in locales where "," is used as the decimal delimiter, an input like "5,1" would be interpreted as a valid double value, whereas in locales where "." is used as the delimiter, it would not.

Solution:

To circumvent this issue, it is necessary to specify the locale for the scanner using the useLocale() method.

Scanner scanner = new Scanner(System.in).useLocale(Locale.US);
Copy after login

By setting the locale to Locale.US, the scanner will expect values in the US format, where "." is used for the decimal delimiter.

Explanation:

The useLocale() method allows the developer to define the locale used by the scanner for parsing values. This ensures that the scanner expects values in the correct format for the specified locale.

The above is the detailed content of How to Resolve InputMismatchException When Reading Double Values with Java Scanner?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template