# Product price rounding

Because rounding occurs during conversion, the currency that is actually stored in the database and used in calculations is important. The price that is displayed to the customer is the price that the customer pays. Small differences, such as conversion rounding errors in unit prices, can result in large differences in total order amounts. You should review your unit sizes and prices before offering converted unit prices to your customers.

The following example illustrates product price rounding, using the hypothetical conversion factor of 1 GBP = 2 EUR.

Quantity Item Unit Price in the Database Conversion: Unit Price EUR to GBP Total Price in Preferred Currency (EUR) Total Price in Preferred Currency (GBP) Conversion: Total Price GBP to EUR
100 bolt 0.05 EUR 0.03 GBP 5.00 EUR 3.00 GBP 6.00 EUR
1 package of 100 bolts 5.00 EUR 2.50 GBP 5.00 EUR 2.50 GBP 5.00 EUR

In this example, a customer wishes to order 100 bolts and the unit price for each bolt is 0.05 EUR. This price is stored in the database. If you convert the price to GBP, this yields a unit price of 0.03 GBP.

If the customer's preferred currency is EUR, the cost is calculated as 100*0.05 = 5.00 EUR. If the preferred currency is GBP, the cost is 100*0.03 = 3.00 GBP. However, converting 3.00 GBP to EUR yields 6.00 EUR and therefore, the customer pays 1.00 EUR more by choosing to shop in GBP.

One solution is to have a larger unit price, such as by selling bolts in larger packages. For example, if the order is for one package of 100 bolts, the unit price in the database is 5.00 EUR. Thus, if you convert the price to GBP, this yields a unit price of 2.50 GBP. If the preferred currency is EUR, the cost is 1*5.00 = 5.00 EUR. If the preferred currency is GBP, the cost is 1*2.50 = 2.50 GBP. If you convert 2.50 GBP to EUR, this yields 5.00 EUR. The customer pays the same price regardless of the preferred currency choice. If you want to disable rounding and conversion, you can specify a price in each supported currency, so that conversion is not necessary.

Note: Monetary amounts are rounded before they are stored in the database. Rounding information for each currency is specified in the CURFORMAT database table. If you need to add to or change this rounding information, change the CURFORMAT database table.