如何确定小数/双精度数是否为整数?

如何判断小数或双精度值是整数?

例如:

decimal d = 5.0; // Would be true

decimal f = 5.5; // Would be false

要么

double d = 5.0; // Would be true

double f = 5.5; // Would be false

我想知道的原因是,这样我就可以以编程方式确定是否要使用.ToString("N0")或输出值.ToString("N2")。如果没有小数点值,那么我不想显示出来。

回答:

对于浮点数n % 1 == 0通常是检查小数点后是否还有其他内容的方法。

public static void Main (string[] args)

{

decimal d = 3.1M;

Console.WriteLine((d % 1) == 0);

d = 3.0M;

Console.WriteLine((d % 1) == 0);

}

输出:

False

True

如下面的@Adrian

Lopez所述,与较小的值进行比较epsilon将丢弃浮点计算错误的计算。由于问题是关于double值的,因此下面是一个更 浮点计算证明的

答案:

Math.Abs(d % 1) <= (Double.Epsilon * 100)

以上是 如何确定小数/双精度数是否为整数? 的全部内容, 来源链接: utcz.com/qa/400888.html

回到顶部