2012-07-20 39 views
1

我想問爲什麼我得到一個InputMismathExceptionInputMismatchException

我已宣佈double類型的變量,當我分配給它一個點的值,例如(4.6)它拋出我:

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.nextDouble(Scanner.java:2456) 
    at Exercises.ComputingMeanAndStandartDeviation_5_21.main(ComputingMeanAndStandartDeviation_5_21.java:18) 

下面是代碼:

package Exercises; 

import java.util.*; 

public class ComputingMeanAndStandartDeviation_5_21 
{ 

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

     double sum = 0; 
     double number = 1; 
     double counter = 1; 
     System.out.println("Enter ten numbers: "); 
     while(counter<10) 
     { 
      number = input.nextDouble(); 
      sum +=number; 
      counter ++; 
     } 

     System.out.println(sum + " " + number + " " + counter); 
     double mean = sum/counter; 
     System.out.println("The mean is: " + mean); 
    } 

} 
+1

您的輸入是什麼? – nhahtdh 2012-07-20 16:56:07

+0

你'Scanner'對象期待閱讀'double',但實際上是看到的東西,你不能轉換成'double' – 2012-07-20 16:56:24

+0

對於下面的輸入 – 2012-07-20 16:57:17

回答

2

在語言環境問題

Locale.setDefault(Locale.US); 
Scanner input = new Scanner(System.in); 

美國小數分隔符 「 」(78.12),而不是「,」(78,12)

+0

是的,好友,你是對的。我以前玩的地方,它現在正在工作乾杯隊友 – 2012-07-20 17:04:15

+0

很好的答案,但你的意思是美國小數(不是分隔符)? – 2012-07-20 17:05:12

相關問題