在 MySQL 中,CEILING() 和 FLOOR() 函式與 ROUND() 函式有什麼區別?
CEILING() 函式返回不大於 X 的最小整數。請看以下示例 –
mysql> Select CEILING(3.46); +---------------+ | CEILING(3.46) | +---------------+ | 4 | +---------------+ 1 row in set (0.00 sec) mysql> Select CEILING(-6.43); +----------------+ | CEILING(-6.43) | +----------------+ | -6 | +----------------+ 1 row in set (0.02 sec)
FLOOR() 函式返回不大於 X 的最大整數。請看以下示例 –
mysql> Select FLOOR(-6.43); +--------------+ | FLOOR(-6.43) | +--------------+ | -7 | +--------------+ 1 row in set (0.00 sec) mysql> Select FLOOR(3.46); +-------------+ | FLOOR(3.46) | +-------------+ | 3 | +-------------+ 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)向上或向下舍入數字。
- FLOOR() 函式一直向下舍入數字,趨近於零。
- CEILING() 函式一直向上舍入數字,遠離零。
mysql> Select ROUND(1.415,2),FLOOR(1.415),CEILING(1.415); +----------------+--------------+----------------+ | ROUND(1.415,2) | FLOOR(1.415) | CEILING(1.415) | +----------------+--------------+----------------+ | 1.42 | 1 | 2 | +----------------+--------------+----------------+ 1 row in set (0.00 sec)
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP