检查数字是否有小数点
本文关键字:小数点 是否 数字 检查 | 更新日期: 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
, double
或float
,确定它们是否为有效整数的最简单方法是做模检查,如:
decimal figure = 1.0m;
Console.WriteLine(figure % 1 == 0 ? "Integer Number" : "Floatingpoint Number"); // deviding by 1 leaves no remainder
你应该更具体地说明你的目标是什么,特别是你的数字是什么类型的。