Forum Discussion

ChristianW's avatar
ChristianW
Valued Contributor
4 years ago

Rounding the result of a formula

I want to round the values for the Revenue account for all UD2 members to whole numbers. Do I have to get the values, round them and write the value, or is there a simpler method?
  • ChristianW's avatar
    4 years ago

    There is no explicit rounding function in api.data.calculate, but you can use math.round function together with the eval function, as explained here: Using-the-EVAL-function-to-loop...

    It will look like this:

    Here is the member formula part of it:

     

    api.Data.Calculate("A#60000R = EVAL(A#60000)", AddressOf onEvalDataBuffer)

     

    and here the helper function:

     

    Private Sub OnEvalDataBuffer(ByVal api As FinanceRulesApi, ByVal evalName As String, ByVal eventArgs As EvalDataBufferEventArgs)
    
    'Loop over cells
    Dim resultCells As New Dictionary(Of DataBufferCellPk, DataBufferCell)
    For Each sourceCell As DataBufferCell In eventArgs.DataBuffer1.DataBufferCells.Values
                sourceCell.CellAmount = math.round(sourceCell.CellAmount)
    Next
    
    eventArgs.DataBufferResult.DataBufferCells = eventArgs.DataBuffer1.DataBufferCells
    End Sub

     

    The result will look like this: