1
我需要檢查數字是否有小數點。檢查數字是否有小數點
例子。
Figure Result
=====================
1 false
1.0 true
0.0 true
0 false
我發現不同的解決方案檢查數值是整數或雙倍。但我想檢查一下數字是否有小數點。例如。圖是1.0,它應該返回真實的結果。
您能否給我提供更好的解決方案?
我需要檢查數字是否有小數點。檢查數字是否有小數點
例子。
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
- 方法:
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
你應該是mo關注你的目標是什麼,特別是你的數據是什麼類型。
這篇文章回答你想要的東西 - http://stackoverflow.com/questions/2751593/how-to-determine-if-a-decimal-double-is-an-integer – shekhar
可能的重複[檢查一個數字有一個小數位/是一個整數](http://stackoverflow.com/questions/2304052/check-if-a-number-has-a-decimal-place-is-a-whole-number) – Japongskie