C#:如果输入的小数位数超过2,则显示错误代码

时间:2012-09-10 11:56:51

标签: c#

我正在尝试在C#中创建一个像收银机一样工作的程序,我想让用户无法输入一个超过2位小数的数字= x.12可以但不是x。 123

感谢您的所有答案。

编辑:代码示例会有很多帮助。我不擅长编程也不擅长英语。 =)

4 个答案:

答案 0 :(得分:1)

使用NumericUpDown控件捕获输入并将其DecimalPlaces属性设置为2.

答案 1 :(得分:1)

您可以将小数位数舍入为2。

decimal a = 1.994444;

Math.Round(a, 2);

答案 2 :(得分:0)

将输入转换为字符串并检查其长度(许多解决方案之一);

示例:

void checkLenghth()
{
    decimal value = 2.15;
    string stringDecimal = value.ToString();
    string[] splitStrings = stringDecimal.Split('.');
    if (splitStrings[1] > 3)
    MessageBox("Its wrong!"); 
}

这只是一个方向示例,我并不是说它必须完全像那样(对于评论家:))

答案 3 :(得分:0)

您可以使用正则表达式测试输入。下面的示例要求输入至少包含一个数字,可选地后跟一个小数位,后跟1或2个额外数字:

string number = "1.23";
bool isMatch = Regex.IsMatch(number, @"^\d+(\.\d{1,2})?$");