Rounding in MS Access

后端 未结 12 696
夕颜
夕颜 2020-11-28 14:23

Whats the best way to round in VBA Access?

My current method utilizes the Excel method

Excel.WorksheetFunction.Round(...

But I am l

12条回答
  •  野性不改
    2020-11-28 15:08

    I used the following simple function to round my currencies as in our company we always round up.

    Function RoundUp(Number As Variant)
       RoundUp = Int(-100 * Number) / -100
       If Round(Number, 2) = Number Then RoundUp = Number
    End Function
    

    but this will ALWAYS round up to 2 decimals and may also error.

    even if it is negative it will round up (-1.011 will be -1.01 and 1.011 will be 1.02)

    so to provide more options for rounding up (or down for negative) you could use this function:

    Function RoundUp(Number As Variant, Optional RoundDownIfNegative As Boolean = False)
    On Error GoTo err
    If Number = 0 Then
    err:
        RoundUp = 0
    ElseIf RoundDownIfNegative And Number < 0 Then
        RoundUp = -1 * Int(-100 * (-1 * Number)) / -100
    Else
        RoundUp = Int(-100 * Number) / -100
    End If
    If Round(Number, 2) = Number Then RoundUp = Number
    End Function
    

    (used in a module, if it isn't obvious)

提交回复
热议问题