VBA for Excel-试图四舍五入到最接近的500,无法使代码正确地四舍五进到250



如果标题或问题令人困惑,请接受我最诚挚的歉意。

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

我使用的代码:

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

我正在尝试四舍五入的可用号码从-500转到10000。如果要取整的值是从501749,则它将适当地向下取整(即25012749取整到500)。750's适当地向上取整(27503000取整)。从001249的值也正确向下取整,从251499的值正确向上取整。

由于某种原因,250值仍然向下舍入(2250舍入到2000而不是2500)。直到251才会四舍五入。当我在实际的excel工作表中使用此函数时,Round函数工作正常,并将在250处取整。

vba并没有按照我学到的传统意义(有点破解)进行舍入,添加0.000001。因此,通过执行以下,您不会对代码进行太多更改

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

这不是一个很大的数字,你不应该经历任何计算错误。尽管你可能需要添加一些逻辑来做负数-0.000001,而不是负数

最新更新