PS - 個人博客原文:MySQL double 類型查詢不准確的問題
問題
有如下查詢:
SELECT * FROM <table-name> WHERE price > 32.99;
結果竟然包含了 32.99 的數據行。
原因
price 的類型是 double,會存在精度丟失問題,作為條件查詢或者 sum 等聚合函數時結果會不准確
解決
將 double 類型轉化為 decimal 查詢:
SELECT * FROM <table-name> WHERE CAST(price AS DECIMAL(7, 2)) > 32.99;
參考