MySQL十进制数学 - 是否需要CAST?

时间:2014-04-22 13:39:48

标签: mysql decimal

我有两个表,invoiceinvoice_items

invoice_items我有列:

  • quantity - INT
  • unit_price - DECIMAL(10,2)
  • discount - DECIMAL(10,2) - 百分比

我想知道在计算内容时是否需要在SQL中将静态值转换为DECIMAL,例如在查找订单项的总价格(增加25%的增值税)时:

SELECT (quantity * unit_price * (1 + discount/100)) * 1.25 AS item_price
FROM invoice_items

即。是否需要将100(1 + discount/100)1.25的结果转换为DECIMAL以保持精度,或者这是在内部完成的吗?

1 个答案:

答案 0 :(得分:0)

正如Marcus Adams所建议的,我通过将所有内容乘以10 ^(小数位数)= 10来避免了十进制数的需要。显然,这个解决方案可以应用于事先知道小数点后最大位数的任何类似问题。