我可以想到几种方法,例如。
Convert.ToInt32(floatingPoint) - floatingPoint == 0;
Math.Truncate(floatingPoint) - floatingPoint == 0;
floatingPoint % 1 == 0;
Math.Floor(floatingPoint) == floatingPoint;
//etc...
但是哪种方法最可靠呢?
最佳答案
您不应该检查是否完全等于零,因为 float 通常只包含与您分配给它的数字最接近的近似值。
例如,该类型可以表示的最接近 42 的可能值可能类似于 42.00000000000000662,您仍然希望将其计为整数值。
取该值与四舍五入后的值之差,然后取其绝对值(使其不是负值)并与较小的值进行比较:
if (Math.Abs(Math.Round(floatingPoint) - floatingPoint) < 0.000001) ...
关于c# - 检查浮点变量是否为整数的最可靠方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/638376/