2011-03-04 36 views
1

如何使文本框精確接受十進制值。將整數轉換爲十進制精度值

example.if文本框的值是12。如何將其轉換爲12.00

,如果它是12.00它必須提前

感謝保持相同..。

+1

你是什麼意思? 'decimal.Parse(txtbox.Text);'將解析這兩個數字。 12.00沒有任何意義,12 = 12.0 = 12.00 = 12.000 = ...如果你想以一個定義精度的字符串顯示它,你應該可以去'number.ToString(「#。000」) ;' – mike 2011-03-04 08:39:40

+0

我得到了代碼,tjanks .. – 2011-03-05 11:49:01

回答

4

您想使用NumericUpDown控制。

編輯:但要回答你的問題。爲了使TextBox控制只接受數值,你必須壓制你不想要的每個鍵,然後將輸入轉換爲Decimal

Decimal value = Convert.ToDecimal(this.yourTextBox.Text); 

或故障安全的方式:

Decimal value = 0; 
String toParse = this.yourTextBox.Text; 

if(!Decimal.TryParse(toParse, out value) { 
    // The user managed to break it... 
} 
1

一個簡單的,固定寬度的變體是:

textBox1.Text = String.Format("{0,12:0.00}", textBox1.Text); 
  • 0 =第一值(在該情況下 textBox1.Text )
  • 12 =最小寬度
  • 0.00 =十進制(即你可以使用#),找出與 的String.Format更多的變種在MSDN上
1

的事件添加到TextBoxChanged:

public void On_textbox1TextChanged(object sender, EventArgs e) 
{ 
    Double dblVal = 0; 
    if(Double.TryParse(this.textbox1.Text, ref dblVal)) 
    { 
     this.textbox1.Text = dblVal.ToString("N2"); // Prints two 2 decimal places 
    } 
    else { /* Handle invalid value */ } 
} 
1

我會做上面的文字變化的組合,和字符串格式化,還可以使用MASKED文本框。這將允許你放入一個預期的面具以允許。

相關問題