ili*_*rit 1 c# floating-point isinteger
我可以想到几种方法,例如.
Convert.ToInt32(floatingPoint) - floatingPoint == 0;
Math.Truncate(floatingPoint) - floatingPoint == 0;
floatingPoint % 1 == 0;
Math.Floor(floatingPoint) == floatingPoint;
//etc...
Run Code Online (Sandbox Code Playgroud)
但哪种方法最可靠?
您不应检查精确相等为零,因为浮点数通常仅包含与您分配给它的数字最接近的可能近似值.
例如,类型可能表示的最接近42的值可能类似于42.00000000000000662,您仍然希望将其计为整数值.
取值和舍入值之间的差值,然后取其值的绝对值(这样它不是负数)并比较一个小值:
if (Math.Abs(Math.Round(floatingPoint) - floatingPoint) < 0.000001) ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
378 次 |
| 最近记录: |