我有两个表,invoice
和invoice_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以保持精度,或者这是在内部完成的吗?
答案 0 :(得分:0)
正如Marcus Adams所建议的,我通过将所有内容乘以10 ^(小数位数)= 10来避免了十进制数的需要。显然,这个解决方案可以应用于事先知道小数点后最大位数的任何类似问题。