2012-08-08 62 views
0

我有這些非常簡單的3行代碼,據我的理解,應該允許用戶輸入一個十進制數然後吐出數字。Java不會接受雙精度變量的十進制數

System.out.print("Enter a number.\n"); 
    double number = input.nextDouble(); 
    System.out.println(number); 

當我這樣做時輸入十進制數Java拋出InputMismatchException;雖然當我輸入整數時,它吐出的數字顯示一個小數位。這很簡單,我甚至不能谷歌它,但我完全失去了。

編輯等什麼?我剛剛嘗試過,它實際上接受「2,4」而不是「2.4」。這可以改變嗎?

+2

您是否使用千個分隔符?你用什麼字符來表示小數?您可能需要更改區域設置。 – assylias 2012-08-08 10:46:59

+2

嘗試'1.0'和'1,0' .... – 2012-08-08 10:48:13

+0

谷歌搜索給了我這個鏈接..請檢查這是你想要的.. http://www.daniweb.com/software-development/java/threads/106933 /從控臺輸入讀取# – Saurabh 2012-08-08 11:00:12

回答

2

您需要更改地區(我假設你正在使用掃描儀):

scanner.useLocale(Locale.US); 
+0

可以永久更改嗎? – spacitron 2012-08-08 10:59:33

+0

Java默認使用您的操作系統設置,除非您指定不同的設置。你可以在你的應用程序級別用'Locale.setDefault(...)'來做到這一點,或者你可以像我的答案一樣在本地執行。要更改操作系統設置,在Windows上,我認爲它將位於區域設置中。 – assylias 2012-08-08 11:02:14

+0

謝謝。我會記住這一點。 – spacitron 2012-08-08 11:04:52

3

不知道你的'輸入'元素是什麼,我只能推測你可能在這裏有一個語言環境問題?例如。輸入'2,4'而不是'2.4'?

相關問題