**解决了,两个系统之间的标点符号有所不同。我在用。在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计算机上出现此错误?
答案 0 :(得分:2)
如果您的两台计算机上有不同的区域设置,则会出现这种情况。有些使用,
作为小数分隔符,有些使用.
。
例如,可以通过DecimalFormatSymbols
类检查使用哪一个。