文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  函式與運算子  /  精確數學

14.24 精確數學

MySQL 提供精確數學的支援:數值處理會產生極為精確的結果,並高度控制無效值。精確數學基於以下兩個功能:

  • SQL 模式,控制伺服器在接受或拒絕無效資料時的嚴格程度。

  • MySQL 用於定點算術的程式庫。

這些功能對數值運算有幾個含義,並提供高度符合標準 SQL 的功能

  • 精確計算:對於精確數值,計算不會引入浮點錯誤。而是使用精確度。例如,MySQL 將 .0001 等數字視為精確值,而不是近似值,並將其加總 10,000 次會產生精確的 1 結果,而不是僅僅接近 1 的值。

  • 定義完善的捨入行為:對於精確數值,ROUND() 的結果取決於其引數,而不是環境因素(例如底層 C 程式庫的工作方式)。

  • 平台獨立性:對精確數值執行的運算在不同平台(例如 Windows 和 Unix)上相同。

  • 控制對無效值的處理:溢位和除以零是可偵測的,並且可以視為錯誤。例如,您可以將對於欄位而言過大的值視為錯誤,而不是將值截斷以使其位於欄位資料類型的範圍內。同樣地,您可以將除以零視為錯誤,而不是產生 NULL 結果的運算。選擇採用哪種方法取決於伺服器 SQL 模式的設定。

以下討論涵蓋了精確數學如何運作的幾個方面,包括可能與舊應用程式不相容的情況。最後,提供了一些範例,示範 MySQL 如何精確地處理數值運算。如需控制 SQL 模式的資訊,請參閱第 7.1.11 節,「伺服器 SQL 模式」