2013-04-14 32 views
0

我正在使用Java Swing製作計算器,而且我遇到了一些問題。當在Linux上(Linux mint 14 nadia)我的計算器能正常工作,但在Windows 8中使用時它可以正確打開,但表示在將我的輸入字符串解析爲雙精度數時出現問題。我的java代碼可以在linux下正常工作,但不能在Windows上運行

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

什麼**確實**是Windows 8下的「問題」?不同版本的Java?編譯錯誤(確切的消息是什麼)?運行時錯誤?或只是不正確的運行時行爲「 –

+0

」錯誤消息說,行「return Double.parseDouble(n);」正在創建問題。「所以......錯誤信息是什麼? –

回答

2

它可能來自於你的環境不同Locale

在您的Windows環境中,您解析的String可能不是您指定的格式:#.##########。嘗試打印您嘗試解析的數字,並檢查您使用的格式是否正確。

+0

問題是在Winows中我不得不使用「,」而不是「。」。在小數位之前,但不知何故在linux中並不重要。 – gthb7

+0

是的,這是我懷疑:) –

相關問題