检查数字是不是有小数点
Posted
技术标签:
【中文标题】检查数字是不是有小数点【英文标题】:Check whether figure has decimal point or not检查数字是否有小数点 【发布时间】:2016-01-12 01:49:42 【问题描述】:我需要检查数字是否有小数点。
示例。
Figure Result
=====================
1 false
1.0 true
0.0 true
0 false
我发现检查数字值是整数还是双精度的不同解决方案。但我想检查数字是否有小数点。例如。图是1.0,应该返回真结果。
能否请您提供更好的解决方案?
【问题讨论】:
这篇文章回答了你想要的 - ***.com/questions/2751593/… Check if a number has a decimal place/is a whole number的可能重复 【参考方案1】:鉴于输入很少,并假设您所称的 figure 以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
你应该更具体地说明你的目标是什么,尤其是你的数字是什么类型的。
【讨论】:
以上是关于检查数字是不是有小数点的主要内容,如果未能解决你的问题,请参考以下文章