使用精度值将整数转换为十进制

时间:2011-03-04 08:31:52

标签: c# winforms

如何使文本框仅精确接受十进制值。

example.if文本框值为12.如何将其转换为12.00

如果是12.00则必须保持不变..

提前感谢。

4 个答案:

答案 0 :(得分: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 :(得分:1)

一个简单的固定宽度变体是:

textBox1.Text = String.Format("{0,12:0.00}", textBox1.Text);
  • 0 =第一个值(在这种情况下 textBox1.Text)
  • 12 =最小宽度
  • 0.00 =十进制(即你可以使用#)找出更多变种 msdn上的String.Format

答案 2 :(得分: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 */ }
}

答案 3 :(得分:1)

我会在文本更改和字符串格式化方面进行上述组合,但也可以使用MASKED文本框。这样你就可以放入一个预期的面具。