InputMismatchException读取十进制数

时间:2015-09-25 12:24:45

标签: java java.util.scanner

输入55.5作为第一个提示的答案时出现以下错误。输入50时,我没有收到错误。

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextDouble(Scanner.java:2413)
    at Miles.main(Miles.java:9)
Java Result: 1
import java.util.Scanner;

public class Miles {
    public static void main(String[] args){ 
        Scanner input = new Scanner(System.in); 
        System.out.println ("Enter the amount of water in kilograms");
        double m = input.nextDouble();

        System.out.println ("Enter the initial temprature");
        double initialTempreture = input.nextDouble();

        System.out.println ("Enter the final termprature");
        double finalTemprature = input.nextDouble();

        double q = m * (initialTempreture - finalTemprature) * 4184;

        System.out.print (q);
    }
}

2 个答案:

答案 0 :(得分:2)

您居住的国家/地区的小数点分隔符不是.

您应该使用Scanner.useLocale(locale)更改语言区域:

input.useLocale(Locale.ENGLISH);

这样,Java会将.识别为小数点分隔符。

如果您想知道您在默认语言环境中使用的小数分隔符,可以使用:

System.out.println(DecimalFormatSymbols.getInstance().getDecimalSeparator());

答案 1 :(得分:0)

哦,谢谢!我发现它确实可以作为分隔符使用。 我记住这一点:)