检查数字是否有小数点

本文关键字:小数点 是否 数字 检查 | 更新日期: 2023-09-27 18:17:31

我需要检查一下数字是否有小数点

的例子。

Figure      Result
=====================
1           false
1.0         true
0.0         true
0           false

我发现不同的解决方案的检查数字值是整数或双。但是我想检查一下数字是否有小数点。如。图1.0 .它应该返回真结果

你能给我更好的解决方案吗?

检查数字是否有小数点

考虑到很少的输入,并假设你所说的图形是作为string给你的,这就是我想到的。

var figures = new[] {"1", "1.0", "0.0", "0"};
foreach(var figure in figures) 
{
    if (figure.Contains("."))
    {
        Console.WriteLine("point");
    }
    else
    {
        Console.WriteLine("no point");
    }
}

Regex可能是更好的方法。

foreach (var figure in figures)
{
    if (Regex.IsMatch(figure, @"^'d+'.'d+$"))
    {
        Console.WriteLine("{0}: Floatingpoint Number", figure);
    }
    else if (Regex.IsMatch(figure, @"^'d+$"))
    {
        Console.WriteLine("{0}: Integer Number", figure);
    }
    else
    {
        Console.WriteLine("{0}: No Number", figure);
    }
}

同样,您可以使用您想要检查的类型的TryParse -Methods:

foreach (var figure in figures)
{
    int intOut;
    decimal decimalOut;
    // Note that you would have to check for integers first, because 
    // integers would otherwise be detected as valid decimals in advance.
    if (int.TryParse(figure, out intOut))
    {
        Console.WriteLine("{0}: Integer Number", figure);
    }
    else if (decimal.TryParse(figure, out decimalOut))
    {
        Console.WriteLine("{0}: Floatingpoint Number", figure);
    }
    else
    {
        Console.WriteLine("{0}: No Number", figure);
    }
}

如果您的数字类型为decimal, doublefloat,确定它们是否为有效整数的最简单方法是做模检查,如:

decimal figure = 1.0m;
Console.WriteLine(figure % 1 == 0 ? "Integer Number" : "Floatingpoint Number"); // deviding by 1 leaves no remainder

你应该更具体地说明你的目标是什么,特别是你的数字是什么类型的。