我正在寻找一种正确的格式,并在MySQL中对货币进行数学计算,其中价格是动态计算的,因此精度大于2dp。
calculated unit Price = 1.255
displayed price = 1.26
如果客户订购了100件产品:
actual total (100 * 1.255) = 125.50
displayed total (100 * 1.26) = 126.00
所以,如果顾客查看他们的发票并做数学计算,他们会发现他们已被收取50便士费,因为我将向他们收取125.50英镑的费用,但他们会为自己做数学并认为他们应该已被收取126.00英镑。
我认为解决此问题的最简单方法是截断或围绕计算出的单价如ROUND(1.255, 2)
或TRUNCATE(1.255, 2)
,这意味着显示和帐户将匹配。
对于非常小的数量,这不是问题,但是当客户订购更多单位时,它确实变得很重要。
问题在于我不想向客户收取125.00英镑或126.00英镑的费用。我想向他们收取100英镑的125.50英镑。
任何想法或者我应该只是在3dp中向客户显示价格,而不是2dp,而是总计?
答案 0 :(得分:1)
通过舍入单价,您正在破坏信息。正如您所建议的那样,解决此问题的唯一方法是全面向客户显示单价。