2016-10-01 51 views
-2

我仍在学习http://programmingbydoing.com/a/name-age-and-salary.html我还在学习。扫描仪错误。 “线程异常”主“java.util.InputMismatchException”

我收到此错误消息。有人可以告诉我如何解决这个问题吗? 我得到这个错误,如果我把数字99.9。但如果我把99或99,9,这不是错误。 i get this error

import java.util.Scanner; 

public class NameAgeSalary  
{ 
    public static void main (String[] args) 
    { 
     Scanner keyboard = new Scanner (System.in); 
     String Name; 
     int Age; 
     double Salary; 

    System.out.println("Hello. What is your name?"); 
    Name = keyboard.next(); 
    System.out.println(); 
    System.out.println("Hi, " +Name+ "! How old are you?"); 
    Age = keyboard.nextInt(); 
    System.out.println(); 
    System.out.println("So you're " +Age+ ", eh? That's not old at all! "); 
    System.out.println("How Much do you make," +Name+ " ?"); 
    Salary = keyboard.nextDouble(); 
    System.out.println(); 
    System.out.println(""+Salary+ "! I hope that's per hour not per year! LOL!"); 
} 
} 
+0

你输入了什么程序? – SMA

+0

'Scanner scanner = new Scanner(System.in).useLocale(Locale.US);'http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html#localized - 值 –

回答

0

如果99和99.9的接受了一倍,但99.9不是,那么你的位置设置到逗号作为小数点分隔符,而不是点的值。

例如在美国,价值1,234.56是正确的,而德国的相同数值将表示为1.234,56。

因此,检查语言和本地设置,并根据该设置输入值。

相关问题