Excel的VBA – 尝试舍入到最接近的500,无法获得代码在250正确舍入

如果标题或问题混淆,请接受我最诚挚的道歉。

我在Excel 2007中使用VBA。我需要将一个数字舍入到最接近的500。

我正在使用的代码:

Rvariable = Round(variable / 500, 0) * 500 

我正在尝试的可用数字从-50010000 。 如果要四舍五入的值是从501749 ,那么它会适当地舍入(即25012749500 )。 750's适当的四舍五入( 27503000 )。 从001249值也正确地舍入,并且251499正确地舍入。

由于某种原因, 250值仍然下降( 22502000不是2500 )。 直到251才会结束。 当我在实际的Excel工作表中使用这个函数时, Round函数可以正常工作,并且会以250整。

vba不是以传统意义上的圆形来学习(有点黑客)加0.000001。 所以你不要通过执行下面的代码来改变你的代码

 Rvariable = Round((variable + 0.000001) / 500, 0) * 500 

这不是一个重要的数额,你不应该经历任何计算错误。 尽pipe你可能必须添加一些负数-0.000001的逻辑来代替负数