2014-01-30 51 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

預期的輸入取決於當前的語言環境 –

相關問題