2012-03-13 36 views
0

Aarghhhhh !!!我剛纔問如何輸入數字只是現在我有問題,當我插入大量的代碼,如:在文本框中寫入數字時出現奇怪的結果

tbNum.Text = Convert.ToString(double.Parse(tbPerc.Text)); 

數量是int而不是double。因此,我得到了5623而不是562,3。如果有幫助,我已將InputScope設置爲數字。謝謝!!!

事實上,我在Convert.ToString方法中有一些計算,但這是不相關的,因爲在雙精度之間計算的返回值是雙精度值。

+6

所以你正在轉換一個字符串到一個你轉換爲一個字符串的雙?啊哈... – f2lollpll 2012-03-13 20:20:13

+0

看看[http://stackoverflow.com/questions/105770/net-string-format-to-add-commas-in-thousands-place-for-a-number](http:/ /stackoverflow.com/questions/105770/net-string-format-to-add-commas-in-thousands-place-for-a-number) – 2012-03-13 20:31:18

+0

你可以添加你正試圖轉換的樣本價值? – Bryant 2012-03-13 21:24:31

回答

0

如果您使用InputScope和Number set,那麼您使用的是「。」。作爲十進制分隔符,而不是「,」(這就是鍵盤上顯示的內容)

因此,我假設您的Windows Phone設備/仿真器假定「,」符號爲千位分隔符(en-US默認值,每個例子),因此:

double.Parse("562,3") == 5623 
double.Parse("562.3") == 562.3 
+0

謝謝!我會試試這個! – Cippo 2012-03-15 15:43:50

+0

請注意,你應該使用'double.Parse(「562.3」,CultureInfo.InvariantCulture)'這樣它會忽略系統範圍的CultureInfo和使用一個不變(即有「」作爲小數點分隔符) – 2012-03-15 16:11:24

0

我不能看到字符串轉換爲雙爲一個字符串的原因,但如果你插入562.3,而不是你的562,3示例將工作。