我使用Java Swing制作计算器,我遇到了一些问题。当在linux(linux mint 14 nadia)上时,我的计算器工作正常,但在Windows 8中使用时,它正确打开但是说在将我的输入字符串解析为双数字时出现问题。
private double convertToNumber(String n) {
//Double dbl = new Double(n);
//return dbl;
return Double.parseDouble(n);
}
我尝试了我注释掉的部分,但这也不起作用。
错误消息显示行return Double.parseDouble(n);
正在创建问题,但为什么这不是linux中的问题?
我会让一些我认为可能导致问题的代码如下:
DecimalFormat numberFormat = new DecimalFormat("#.##########"); //Instance variable
//Use: x.getTotalString
//Post: getTotalString is the final product (end result)
public String getTotalString(){
formattedValue = numberFormat.format(total);
formattedValue = formattedValue.replaceAll("^-(?=0(.0*)?$)", "");
return "" + Double.parseDouble(formattedValue);
//return "" + Double.parseDouble(numberFormat.format(total));
}
答案 0 :(得分:2)
它可能来自您环境中的其他Locale
。
在Windows环境中,您解析的String
可能不是您指定的格式:#.##########
。尝试打印您要解析的数字,并检查您使用的格式是否正确。