A quick view of Mediachase.Commerce.Orders.LineItem class we can see that rounding value for LineItemDiscountAmount is hardcoded to 2:
public decimal LineItemDiscountAmount
return Math.Round(base.GetDecimal(LineItemDiscountAmountField), 2);
base[LineItemDiscountAmountField] = Math.Round(value, 2);
So with a marketing system that needs high precision, it makes them useless.
My suggestion is we need that rounding value to be configurable or extendable not hardcoded like that.
This article explains how to return a value with the correct number of decimals, which is determined by the input currency: https://world.episerver.com/documentation/developer-guides/commerce/orders/rounding-totals-for-currencies/. It applies to Commerce versions 10 and up.
I think Khanh is mentioning another issue. Tobias Nilson mentioned this as well - but he didn't file a bug as I told him - so I will do it. https://jira.ep.se/browse/COM-5619
@Khanh: As an Episerver employee, you have more direct channels to file feature requests :)
@Quan: yes, I already fired a feature request on our internal channel with type "market input" https://jira.ep.se/browse/COM-5614.
But it is not public to our partner, so I fired it here too :)
If it is considered as a bug, it would be really great. Thanks Quan.