Bahram Afandi
Bahram Afandi

Reputation: 89

Input Mismatch Exception

When I input integer numbers like 5, 7, 14 etc. everything is ok. But when I enter for example 7.5 I get an error. Where is mistake?

    Exception in thread "main" java.util.InputMismatchException
    at java.base/java.util.Scanner.throwFor(Scanner.java:939) 
    at java.base/java.util.Scanner.next(Scanner.java:1594) 
    at java.base/java.util.Scanner.nextDouble(Scanner.java:2564) 
    at Exercise_11.main(Exercise_11.java:8)

Below is code:

    import java.util.Scanner;
    public class Exercise_11 {
    public static void main(String[] args) {
    Scanner radius = new Scanner(System.in);
    System.out.print("Please input the radius of circle: ");
    double r= radius.nextDouble();
    double l= 2*Math.PI*r;
    double s= Math.PI*r*r;
    System.out.println("Length = " + l);
    System.out.println("Area = " + s);
    }
    }

input number is 12

Error with input number 7.5

Upvotes: 3

Views: 1342

Answers (1)

Arvind Kumar Avinash
Arvind Kumar Avinash

Reputation: 78965

Your system's locale is not supporting dot as decimal separator. Use a locale which supports dot as a separator e.g. Locale.ENGLISH.

Scanner radius = new Scanner(System.in).useLocale(Locale.ENGLISH);

A sample run:

Please input the radius of circle: 7.5
Length = 47.12388980384689
Area = 176.71458676442586

Upvotes: 5

Related Questions