2012-06-18 166 views
1

我爲一個名爲「diff_Box」的文本框給出了一個默認值「2.5」,然後爲了檢查另一個目的中的某個東西,我將此值粘貼到另一個名爲「textbox5」的文本框中」。但在textbox5中顯示爲25.我知道這是一個非常普遍的問題,但我無法解決它。我嘗試過沙發。將文本框值傳遞給另一個文本框

double diff; 

diff = Double.parse(diff_Box.Text); 
diff = Convert.ToDouble(diff_Box.Text); 



textBox5.Text = Convert.ToString(diff); 
textBox5.Text = diff.ToString("F2"); 
textBox5.Text = ToString.parse(diff); 

但我遇到所有的時間同樣的問題提前

感謝

enter image description here

enter image description here

+2

你爲什麼要轉換它?我錯過了什麼嗎?當然textBox5.Text = diff_Box.Text將工作? – WestDiscGolf

+2

您應該僅將textBox用於輸入/輸出;不是作爲實際價值的容器。 將該值存儲在局部變量Double _diff中,並將其用於兩個文本框。 – Aphelion

+0

@Aphelion我不同意。爲什麼要創建另一個變量來存儲文本框已經做了什麼。 – Doomsknight

回答

2

的問題是,你是使用格式由您的系統UI文化使用。您實際上在您的GUI上使用InvariantCulture

您在文本框中使用.。我假設你目前的UI文化使用,。因此它在.之後看不到任何數字,並且導致25.0而不是2.5

這條線將轉換回使用InvariantCulture的,而不是系統UI文化:

double diff = Double.Parse(diff_Box.text, CultureInfo.InvariantCulture); 

然而,更好的方法是使用一個專用Double _diff,只是將其轉換爲所需要的文化,顯示在表格。其次,您應該期望用戶使用UI文化進行數據輸入。

+0

你從哪裏看到它?我在代碼中看不到任何逗號。我一直在用積分。 – mctuna

+0

@mrtcn我已經更新了答案。 – Aphelion

+0

它的工作原理。很高興知道這一點,謝謝。 – mctuna

相關問題