MySQL 中的DOUBLE 與DECIMAL:重新評估轉換參數
通常建議不要在MySQL 中使用DOUBLE 進行財務數據存儲,因為潛在的精度誤差。然而,對於具有 783 個 DOUBLE 列的現有系統,考慮轉換為 DECIMAL 需要仔細評估。
在給定的場景中,系統將貨幣值儲存在 DOUBLE 欄位中,但使用 BigDecimal 在 Java 中執行所有計算。 MySQL僅用於結果儲存。由於沒有實際的資料庫計算,所以 DOUBLE 的精確度不足並不是問題。
而且,該系統已經運行了六年,沒有任何與精度相關的錯誤。這表明,對於最多 8 位十進制數字的財務值,DOUBLE 的 15 位精度就足夠了。
此外,執行的特定資料庫操作(SUM 和複雜乘法)不會導致第二個精確度損失小數位。這表明與 DOUBLE 相關的捨入問題不會影響儲存資料的準確性。
因此,在這種特定場景中,計算在 MySQL 外部完成且精度不是一個重要問題,因此可能不會出現將 DOUBLE 列轉換為 DECIMAL 的一個令人信服的理由。但需要注意的是,如果將來計劃進行任何 SQL 算術運算,則應重新考慮轉換為 DECIMAL。
以上是當外部執行計算時,是否應該在 MySQL 中將財務資料的 DOUBLE 轉換為 DECIMAL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!