如果标题或问题令人困惑,请接受我最诚挚的歉意。
我在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
这不是一个很大的数字,你不应该经历任何计算错误。尽管你可能需要添加一些逻辑来做负数-0.000001,而不是负数