2014-01-30 47 views
0

我从输出端得到一个错误消息,当我输入:199.99异常螺纹主力” java.util.InputMismatchException

Exception in thread "main" java.util.InputMismatchException 
    at java.util.Scanner.throwFor(Scanner.java:909) 
    at java.util.Scanner.next(Scanner.java:1530) 
    at java.util.Scanner.nextFloat(Scanner.java:2388) 
    at myproject2.Myproject2.main(Myproject2.java:11) 

,但我的代码没有任何错误:

package myproject2; 

import java.util.Scanner; 
public class Myproject2 { 


    public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 

    System.out.print("Enter purchase amount: "); 
    double purchaseAmount = input.nextDouble(); 

    double tax = purchaseAmount * 0.06; 
    System.out.println("Sales tax is " + (int)(tax * 100)/100.0); 


    } 

} 

请帮帮我!

+2

嗯。堆栈跟踪显示“nextFloat”,但代码显示为“nextDouble”。你确定堆栈跟踪是通过运行该代码获得的吗? –

+0

您是否输入了数字以外的其他输入? – Vamshi

+0

你跑哪些场所?我想知道它是否期待“199,99”。 –

回答

0
input.useLocale(Locale.UK); 

您需要提供扫描器的语言环境。

E.g.

Scanner input= new Scanner(System.in).useLocale(Locale.UK); 
+0

我是java新手,我不知道如何做到这一点。 –

+0

我编辑了我的答案,为您提供了一个示例。 –

1

nextDouble方法需要输入到像A,B。如果您的输入是199,99,则不会有错误。

如果您希望它接受双打方式,您可以将Locale设置为Scanner

input.useLocale(Locale.US); 
+0

预期的输入取决于当前的语言环境 –

相关问题