2016-03-16 137 views
-1

我在網上搜索了數小時,但找不到答案。我需要當用戶在TextBox中鍵入或複製任何數字時,數字應該遵循以下規則:小數千分隔符和小數點

  1. 只應允許一個小數點。
  2. 千分離器。
  3. 應刪除尾部零。我的意思是不應顯示小數點後的零。

更新 例如,

123 => 123

1234.00 => 1234

123456.05 => 123,456.05

123456.50 => 123,456.5

我該怎麼做?

+0

Hmya,你爲什麼不假設一個人能夠輸入一個數字。絕大多數世界人口知道如何做到這一點。尊重他們,他們會回報他們的青睞。只有使用驗證事件輸入後才能檢查*。 –

+0

你能清楚*完全*什麼格式?舉一個它應該看起來像什麼的例子。例如,你說'千分隔符',但是哪一個?一個逗號? – sr28

+2

你也可以嘗試一個MaskedTextBox,我認爲它是用來限制用戶輸入的。 https://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.aspx – GER

回答

4

最簡單的方法是嘗試將值解析爲數字。

decimal value; 
if(decimal.TryParse(textBox.Text, out value) 
{ 
    //value is ok 
    textBox.Text = string.Format("{0}", value);//If you want some fancier formatting 
} 
else 
{ 
    //Value is not valid 
} 
+2

這將是更好的使用' decmial「,否則一些條目會變成稍微不同的數字,因爲double不能精確地存儲所有的十進制數。 – juharr

+0

我應該如何格式化它以便按需要顯示它? – Mohsen

+0

@MohsenJafari將「string.Format」更改爲這一個:https://msdn.microsoft.com/pl-pl/library/dn906224(v=vs.110).aspx Juharr:已修復。 –

相關問題