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

如何确定小数双精度数是否为整数?,第1张

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

对于浮点数,

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)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5084742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存