仅在一个系统上使用小数时出错。 Java的

时间:2014-08-27 13:51:20

标签: java

**解决了,两个系统之间的标点符号有所不同。我在用。在drJava中用于OSX和windows。我不得不在windows中使用代码来工作。我假设你可以通过一些设置来改变它。

我已经测试了我的mac(drjava)上的代码,它运行得很好。但是,当我在Windows(drjava)上尝试代码时,我得到了不同的结果,并且只有当我使用十进制数字时才会这样。

这是我的代码:

Scanner tastatur = new Scanner(System.in);  

System.out.print("Skriv in tempraturen du vil kovertere fra fahrenheit til celcius: ");  //ber brukeren taste inn en temperatur
double tall = tastatur.nextDouble(); //brukeren taster inn en temperatur

double celcius = ((tall - 32)/1.8); //konverterer grader fahrenheit til celcius

System.out.println("Temperaturen i celcius " + celcius);

这是我的错误:

java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextDouble(Unknown Source)
    at FahrenheitCelciusUtvidet.main(FahrenheitCelciusUtvidet.java:10)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)

为什么我只在Windows计算机上出现此错误?

1 个答案:

答案 0 :(得分:2)

如果您的两台计算机上有不同的区域设置,则会出现这种情况。有些使用,作为小数分隔符,有些使用.

例如,可以通过DecimalFormatSymbols类检查使用哪一个。