Excel的VBA – 尝试舍入到最接近的500,无法获得代码在250正确舍入
如果标题或问题混淆,请接受我最诚挚的道歉。
我在Excel 2007中使用VBA。我需要将一个数字舍入到最接近的500。
我正在使用的代码:
Rvariable = Round(variable / 500, 0) * 500
我正在尝试的可用数字从-500
到10000
。 如果要四舍五入的值是从501
到749
,那么它会适当地舍入(即2501
到2749
到500
)。 750's
适当的四舍五入( 2750
到3000
)。 从001
到249
值也正确地舍入,并且251
到499
正确地舍入。
由于某种原因, 250
值仍然下降( 2250
到2000
不是2500
)。 直到251
才会结束。 当我在实际的Excel工作表中使用这个函数时, Round
函数可以正常工作,并且会以250
整。
vba不是以传统意义上的圆形来学习(有点黑客)加0.000001。 所以你不要通过执行下面的代码来改变你的代码
Rvariable = Round((variable + 0.000001) / 500, 0) * 500
这不是一个重要的数额,你不应该经历任何计算错误。 尽pipe你可能必须添加一些负数-0.000001的逻辑来代替负数