General Rounding in AX
Rounding in the application inside AX is determined on the Currency code where you have a ‘General’ rounding which is used in general postings(like a journal) and then specific rounding settings for Sales Orders, Purchase Orders, Prices and Fixed Asset depreciation
There are 3 generic rounding rules in Dynamics AX. ‘Normal’, ‘Upward’ & ‘Downward’
‘Normal’ will round up numbers 5 and higher and round down numbers that are less than 5.
‘Upward’ will round up all numbers
‘Downward’ will round down all numbers
In this blog we will focus on the ‘General’ rounding setting which always uses the ‘Normal’ rounding principle
The ‘General’ rounding in AX uses the generic ‘Round’ function. The ‘Round’ function will round towards a multiple of the decimal value parsed into the function.
What the ‘0.01’ defined on the currency in this context means is that the system will round towards 2 decimals using a factor of 1. (if we had specified 0.001, it would round towards 3 decimals)
Here is an example job that demonstrates how this rounding works in practice
Which produces this output
This job can naturally be amended to test your own examples
Note that if you did not specify a rounding multiple on the currency, the system will apply a multiple of 0.01. You can see more details on this on the Class CurrencyExchangeHelper\roundWithRule