ROUND() 取整數

ROUND(X) ROUND(X,D)
  • X傳入的數值
  • D小數的位數

回傳參數X,其值接近於最近似的整數。在有兩個參數的情況下,回傳X,其值保留到小數點後D位,而第D位的保留方式為四捨五入。若要接保留X值小數點左邊的D位,可將D設為負值。
mysql&gp; SELECT ROUND(-1.23);
-&gp; -1

mysql&gp; SELECT ROUND(-1.58);
-&gp; -2

mysql&gp; SELECT ROUND(1.58);
-&gp; 2

mysql&gp; SELECT ROUND(1.298, 1);
-&gp; 1.3

mysql&gp; SELECT ROUND(1.298, 0);
-&gp; 1

mysql&gp; SELECT ROUND(23.298, -1);
-&gp; 20

回傳值的形態與傳入數值X的形態相同(假設它是一個整數、雙精度數或小數)。也就是說傳入一個整數,結果也是一個整數(無小數部分)。
mysql> SELECT ROUND(150.000,2), ROUND(150,2);
+------------------+--------------+
| ROUND(150.000,2) | ROUND(150,2) |
+------------------+--------------+
| 150.00 | 150 |
+------------------+--------------+

根據傳入值的型態,ROUND使用下面的規則運算:
  • 對於準確值數字(single、double),ROUND()使用「四捨五入」或「最接近的數」的規則:對於一個小數部分為 .5或大於 .5的值,正數則進位到鄰近的整數值,負數則捨棄到臨近的整數值。(也就是其捨入的方向是數軸上遠離零的方向)。對於一個小數部分小於.5的值,正數則捨棄到下一個整數值,負數則進位到鄰近的整數值。
  • 對於近似值數字,其結果根據C函式庫而定。在很多系統中,ROUND()的使用「捨入成最接近的偶數」的規則: 一個帶有任何小數部分的值會被捨入成最接近的偶數整數。

以下舉例說明捨入法對於精確值和近似值的不同之處:
mysql> SELECT ROUND(2.5), ROUND(25E-1);
+------------+--------------+
| ROUND(2.5) | ROUND(25E-1) |
+------------+--------------+
| 3 | 2 |
+------------+--------------+

沒有留言: