0

我正在寻找正确的格式并在 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 向客户显示价格,而是四舍五入?

4

1 回答 1

1

通过四舍五入单价,您正在破坏信息。正如您所建议的,解决此问题的唯一方法是向客户完整显示单价。

于 2013-01-20T14:39:14.677 回答