How do you implement commercial rounding in Microsoft Dynamics CRM? A solution proposed by Microsoft Dynamics CRM Support.

Problem

At various points in Microsoft Dynamics CRM calculations are made. This necessarily results in rounding. For rounding Dynamics CRM uses the .NET function System.Math.Round“, which is based on mathematical or systematic rounding. Also known as „round-to-even“ or „bankers rounding“ it will round up or down to the nearest even number. This explains why the result in the example below when multiplying 7.75 by 3.5 is rounded to 27.12 in Microsoft Dynamics CRM.

Normal rounding would result in 27.13. So why does Dynamics CRM produce a different result? One would think this would be an easy adjustment to make but as we and many others experienced and judging by the number of blog entries and question on the internet this is not the case. So we set out to find the solution and found one.

Solution

Microsoft Dynamics CRM Support solves the problem as follows: two settings in the Microsoft Dynamics CRM configuration have to be changed.

Under Settings, Administration, System settings the number of decimal places for the price calculation needs to be adjusted.
The currency precision used for pricing should be set to 3 decimal places: 
Then under Settings, Business management, Currencies a further setting needs to be changed. 
The currency precision here needs to be set to two.

Result

After adjusting the settings shown above Microsoft Dynamics CRM rounds as expected:


Once you know how to do it, it is quite simple.

 

 

picture: fotolia – stockphoto-graf

 

Further information