2011-03-04 34 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文本框。这将允许你放入一个预期的面具以允许。

相关问题