0
该公式中的优先顺序不正确。计算不正确
我想要做的是计算小计没有折扣。有人能告诉我我犯了什么错误吗?
((`p`.`tax_state` + `p`.`tax_fed`)/100) *
((`p`.`price` * `op`.`quantity`) -
((`p`.`price` * `op`.`quantity`) * `op`.`discount`))
该公式中的优先顺序不正确。计算不正确
我想要做的是计算小计没有折扣。有人能告诉我我犯了什么错误吗?
((`p`.`tax_state` + `p`.`tax_fed`)/100) *
((`p`.`price` * `op`.`quantity`) -
((`p`.`price` * `op`.`quantity`) * `op`.`discount`))
鉴于税率存储为百分比,但是折扣被存储为一个分数(这么多的一致性!),并指出反引号真的是没有必要的,并且是可读性非常不可取的,然后......
(p.price * op.quantity) AS gross_price_exc_tax,
(p.price * op.quantity) * (1 + (p.tax_state + p.tax_fed)/100)
AS gross_price_inc_tax,
(p.price * op.quantity) * (1 + (p.tax_state + p.tax_fed)/100) *
(1 - op.discount) AS net_price_inc_tax,
...
这些都是非常相似你写什么,所以你需要证明你有什么作为输入数据,和你做了什么为结果,你应该能够说明你的预期是什么作为你得到的对比。当你期望它是一个浮点数值时,是否有任何危险,MySQL会将整个表达式的一部分视为一个整数?
你也应该像我一样做,一次一个地构建你的表达集,每次分析结果。这可以帮助您更快地发现问题。例如,我可以添加:
(1 + (p.tax_state + p.tax_fed)/100) AS tax_multiplier
如果出现了为1,而不是1.125或任何正确的分数,那么我知道该审查的表达,可能增加小数点两个常量。
如果您想计算无税小计,为什么您的公式包含单词“tax_state”和“tax_fed”? – jmort253
我想包括税和折扣,然后退出,以确保我有正确的总数。 – Jim
“折扣”是否存储在一个数字('25')?或一小部分('.75')。 –