我有一个十进制变量,我想确定它是否“为整数”
public bool IsanInt(decimal variable)
因此,如果传入的变量为1,
如果它为1.5 ,我想返回true ,则将返回false
.5将为false
10将为true
进行此检查的最佳方法是什么?
干得好:
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更好:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句