如何验证十进制数是否具有精确的一个?

时间:2013-04-10 09:31:04

标签: c#

我需要验证文本框中的用户输入是精确的十进制数吗?例如,下面是一些案例..

  • 如果用户输入1,那么它无效

  • 如果用户输入0则其无效

  • 如果用户输入1.0则为有效

  • 如果用户输入1.1则其有效

  • 如果用户输入1.11,则输入无效

  • 如果用户输入100.1,则输入有效

如何使用C#(.net 3.5)实现此目的?

它是一个WPF文本框。

谢谢, -Mike

3 个答案:

答案 0 :(得分:2)

对我来说,最简单的方法似乎是使用正则表达式。通过将用户输入解释为字符串,您可以将其与'[0-9]+\.[0-9]'

之类的内容进行比较

答案 1 :(得分:2)

对于实现此目的的非正则表达方式:

string input;
decimal deci;
if (input.Length >=3 && input[input.Length - 2].Equals('.') && Decimal.TryParse(input , out deci))
{
    // Success
}
else
{
    // Fail
}

答案 2 :(得分:0)

是正则表达式是检查病情的最佳方式:

对于NNNN.N(1234.5),请使用:

/^\d{4}\.\d$/

对于可选.N(1234 1234. 1234.5),请使用:

/^\d{4}(\.\d?)?$/

对于最大为NNNN.N(1.5 12.5 123,1234 1234.5)的数字,请使用:

/^(?=.*\d)\d{0,4}(\.\d?)?$/

如果你想在开头允许+/-,那么用^ [ - +]替换^。?