我有一個包含一些calcualted字段的查詢。 「總計」列產生一個有2位小數的值,但委員會和Net_Receipt列有4位小數,儘管代碼格式完全相同。任何人都可以告訴我爲什麼以及如何糾正後兩個2 DP。小數位拼圖
SELECT `exhibition_sales`.`name`,
`exhibition_sales`.`category`,
`exhibition_sales`.`catologue_number`,
`exhibition_sales`.`title`,
`exhibition_sales`.`quantity`,
`exhibition_sales`.`unit_price`,
`exhibition_sales`.`commision_rate`,
`exhibition_sales`.quantity * `unit_price` AS `Total`,
`exhibition_sales`.quantity * `commision_rate` * unit_price AS `Commision`,
`exhibition_sales`.quantity * `unit_price` - `quantity` * `unit_price` * `commision_rate` AS `Net_Receipt`
FROM exhibition_sales
ORDER BY `exhibition_sales`.`name` ASC
應在表示層中處理小數位數。數據庫提供數字,而不是格式化數據。數據庫中可能存在精確度的定義,但在演示應完成的地方不會改變。列定義最有可能具有不同的精度,但您沒有顯示它們。 –
我不確定這裏真的有問題。如果你正在失去_precision_(即如果數據被截斷等),那麼它可能是值得擔心的。 –
下面的答案。此外:請不要將貨幣存儲在數字中。它總是會失敗。不要假裝自己沒有。將最小單位存儲,即:美分,作爲整數。 – user2722968