解决这个问题前先要搞清楚一个问题,就是对于负数的取整,到底是取最大整数还是最小整数。比如-2.655,是取-2还是-3的问题。这里给一个方法吧:把要取整的数加上0.5。如果想取到-2就用Fix方法,如果取-3就用Int方法。
例:
Fix(N+0.5) Int(N+0.5)
-2.655 -2 -3
2.655 3 3
设x是浮点变量。
x += x>0 ? 0.5 : x>0 ? -0.5 : 0.0;
fix(x);或INT(x);就可以了。