MySQL 的 TRUNCATE() 函式和 ROUND() 函式之間有什麼區別?
**TRUNCATE()** 函式用於返回 X 截斷到 D 位小數的值。如果 D 為 0,則刪除小數點。如果 D 為負數,則截斷該值的整數部分的 D 個值。請考慮以下示例 -
mysql> Select TRUNCATE(7.536432,2); +----------------------+ | TRUNCATE(7.536432,2) | +----------------------+ | 7.53 | +----------------------+ 1 row in set (0.00 sec)
**ROUND()** 函式返回四捨五入到最接近整數的 X。如果提供第二個引數 D,則該函式返回四捨五入到 D 位小數的 X。D 必須為正數,否則將刪除小數點右側的所有數字。請考慮以下示例 -
mysql>SELECT ROUND(5.693893); +---------------------------------------------------------+ | ROUND(5.693893) | +---------------------------------------------------------+ | 6 | +---------------------------------------------------------+ 1 row in set (0.00 sec) mysql>SELECT ROUND(5.693893,2); +---------------------------------------------------------+ | ROUND(5.693893,2) | +---------------------------------------------------------+ | 5.69 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
從以上定義和示例中,我們可以觀察到這兩個函式之間的以下區別 -
- ROUND() 函式將數字向上或向下舍入,具體取決於第二個引數 D 和數字本身(D 位小數後的數字 >=5 或不 >=5)。
- TRUNCATE() 函式將數字截斷到 D 位小數,而無需檢查 D 位小數後的數字是否 >=5。
mysql> Select ROUND(1.289,2)AS 'AFTER ROUND',TRUNCATE(1.289,2)AS 'AFTER TRUNCATE'; +-------------+----------------+ | AFTER ROUND | AFTER TRUNCATE | +-------------+----------------+ | 1.29 | 1.28 | +-------------+----------------+ 1 row in set (0.00 sec)
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP