0

我正在使用 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));
}
4

1 回答 1

2

它可能来自Locale您的环境中的不同。

在您的 Windows 环境中,String您解析的格式可能不是您指定的格式:#.##########. 尝试打印您要解析的数字,并检查您使用的格式是否正确。

于 2013-04-14T16:24:50.723 回答