如何确定小数/双精度数是否为整数?
如何判断小数或双精度值是整数?
例如:
decimal d = 5.0; // Would be truedecimal f = 5.5; // Would be false
要么
double d = 5.0; // Would be truedouble 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);
}
输出:
FalseTrue
如下面的@Adrian
Lopez所述,与较小的值进行比较epsilon
将丢弃浮点计算错误的计算。由于问题是关于double
值的,因此下面是一个更 浮点计算证明的
答案:
Math.Abs(d % 1) <= (Double.Epsilon * 100)
以上是 如何确定小数/双精度数是否为整数? 的全部内容, 来源链接: utcz.com/qa/400888.html