在 C# 中检查 double 是否为整数的好方法是什么? [复制]

2024-03-09

可能的重复:
如何判断小数/双精度数是否为整数? https://stackoverflow.com/questions/2751593/how-to-determine-if-a-decimal-double-is-an-integer

我有一个 double 类型的变量,我想检查它是否是整数。

此刻我有

public bool CheckIfInteger(double number)
{
    return number.ToString().Contains(".") == false;
}

有没有更好的办法?

更新:抱歉,我没有意识到可能会造成混淆,我所说的整数是指整数的数学定义,即自然数以及非零自然数的负数。


return Math.Truncate(number) == number;

正如评论中提到的,您可能需要考虑这样一个事实:double您的数字的表示形式可能不是精确的整数。在这种情况下,您需要考虑一些误差范围:

double diff = Math.Abs(Math.Truncate(number) - number);
return (diff < 0.0000001) || (diff > 0.9999999);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C# 中检查 double 是否为整数的好方法是什么? [复制] 的相关文章

随机推荐