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 に答える