[英]In C#, what is the best way to determine if a decimal “is an int”?
我有一個十進制變量,我想確定它是否“是一個整數”
public bool IsanInt(decimal variable)
因此,如果傳入的變量為1,我想返回true
如果是1.5,它將返回false
.5將是錯誤的
10將是真的
進行此檢查的最佳方法是什么?
干得好:
class Program
{
static void Main(string[] args)
{
Console.WriteLine(IsInt(3.0m)); // True
Console.WriteLine(IsInt(3.1m)); // False
}
public static bool IsInt(decimal variable)
{
return ((variable % 1) == 0);
}
}
基本上,該方法就是您所需要的。 我只是包括了整個控制台程序,以便您可以看到結果。
編輯:
因此,在對以下評論進行了頭腦風暴之后,我發現很難找到(如果不是不可能的話)(我還沒有找到方法)(如果提供的十進制值很高時)是decimal
還是“ integer
”值。 小數比UInt64
都具有更高的值。 運行以下代碼行時:
Console.WriteLine(Decimal.MaxValue - 0.5m);
輸出:
79228162514264337593543950334
...您將看到它不會在句點后顯示十進制值。 強制截斷有一個最大限制,因此您永遠不會看到0.5是該大值的一部分。 我的方法無法解決該限制。 我不確定在C#或.NET中是否可以執行此操作,但是我很高興。
有一篇很好的文章介紹了decimal
可以做什么和不能做什么...比我認為MSDN更好:
public bool IsInteger(decimal value)
{
return value == Math.Round(value);
}
怎么樣
return Math.Round(n) == n
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.