| 函數 | 語法 | 含義 | 返回類型 | 範例 |
|---|---|---|---|---|
| FLOOR | FLOOR(X) | 向下取整(不大於 X 的最大整數) | BIGINT | FLOOR(1.23)=1, FLOOR(-1.23)=-2 |
| CEILING | CEILING(X) | 向上取整(不小於 X 的最小整數) | BIGINT | CEILING(1.23)=2, CEILING(-1.23)=-1 |
| ROUND | ROUND(X) | 四捨五入到整數 | BIGINT | ROUND(1.58)=2, ROUND(-1.58)=-2, ROUND(-1.23)=-1 |
| ROUND | ROUND(X, D) | 四捨五入保留 D 位小數 | DECIMAL | ROUND(1.298,1)=1.3, ROUND(1.298,0)=1 |
ROUND(-1.5) = -2,ROUND(-1.4) = -1 → **標準四捨五入(絕對值 ≥ 0.5 進位)**,非銀行家捨入。FLOOR/CEILING/ROUND(X) 返回 **BIGINT**;ROUND(X, D) 返回 **DECIMAL**。若作為進一步計算,需注意精度遞減。ROUND(123.45, -1) = 120(十位四捨五入),ROUND(123.45, -2) = 100。ROUND(1.005, 2) 可能得到 1.00 而非 1.01(二進制浮點無法精確表示 1.005)。財務計算請用 DECIMAL 型別存儲並計算。printf("%.2f")),資料庫僅存儲精確值。ROUND 時,確認 D 參數型別符合預期。