为什么这些总数不匹配

时间:2011-02-03 14:42:47

标签: mysql

我需要计算税金和折扣。这是我正在使用的公式,但查询返回简短。

((8.75+0)/100)*(50.00*1 - (50*1*.1/100)) as test,

MySQL重新调整4.370625,当我在计算器上进行数学运算(0.0875 * 50 - 0.05)时,得到:3.875

我哪里错了?


让我们以现实世界为例

A single item for sale:
Quantity:  1.00
Price: $20.00
Tax: 8.75%
Discount: 10%

The tax should equal: $1.58
The subtotal without tax is $18.00
Total: $19.58 (after the discount and tax added)

如何编写查询以获得税收和单独计算以获得折扣?

5 个答案:

答案 0 :(得分:4)

你应该0.0875 * (50 - 0.05)。第一个区别,然后乘法。

((8.75+0)/100)*(50.00*1 - (50*1*.1/100))

( 8.75   /100)*(50      -  0.05        )

  0.0875      *(50      -  0.05        )

  0.0875      * 49.95

  4.370625

你真实的例子(如果所有数字都在这里):

A single item for sale:
Quantity:  1.00
Price: $20.00
Tax: 8.75%
Discount: 10%


"Total Tax" = Quantity * (Price * (1. - (Discount / 100.)) * (Tax / 100.)
"Subtotal without tax" = Quantity * (Price * (1. - (Discount / 100.))
"Total" = Quantity * (Price * (1. - Discount / 100.) * (1. + Tax / 100.))

答案 1 :(得分:2)

这是4.370625。你的数学错误

答案 2 :(得分:2)

您的公式计算(0.0875 *(50-0.05))

3.875是0.0875 * 50-0.5(括号错误,0.5而不是0.05)

答案 3 :(得分:0)

你做的数学错了,它不是(0.0875 * 50 - 0.05)但是(0.0875 *(50 - 0.05))= 4.370625

答案 4 :(得分:0)

您是否拥有运营商优先权?这就是:

((8.75+0)/100)*(50.00*1 - (50*1*.1/100))

评估为

((8.75+0)/100)*((50.00*1) - (50*1*.1/100))

有点怀疑(为什么你会乘以?)你的意思是这个吗?

((8.75+0)/100)*(50.00*(1 - (50*1*.1/100)))