不四舍五入取整(截取整數部分)就是向下取整。
除了用truncate函數來不四舍五入取小數,我們還可以通過變換的方法利用向下取整得到。
先把需要的小數部分換算成整數,使用向下取整后再換算成小數。
類型 | 類別 | 函數名 | 描述 |
---|---|---|---|
取整 | 向下 | floor(expr) | 返回小于expr的最大整數 |
取整 | 向上 | ceil(expr) | 返回大于expr的最小整數 |
取整 | 向上 | ceiling(expr) | 返回大于expr的最小整數 |
取整 | 四舍五入 | round(expr) | 四舍五入取整,后面沒有num默認取整 |
取整 | 四舍五入 | round(expr,num) | 四舍五入取整,num為0表示取整 |
取整 | 不四舍五入 | truncate(expr,num) | 不四舍五入取整,num為0表示取整 |
取小數 | 四舍五入 | round(expr,num) | 四舍五入取小數,num指取幾位小數 |
取小數 | 不四舍五入 | truncate(expr,num) | 不四舍五入取小數,num指取幾位小數 |
取小數 | 不四舍五入 | round(floor(expr*temp)/temp,num) | 其中temp=10^num,num指取幾位小數 |
實例
select
floor(52.45), #52
floor(52.54), #52
ceil(52.4), #53
ceiling(52.5), #53
round(52.45), #52
round(52.45, 0), #52
round(52.54, 0), #53
truncate(52.45,0), #52
truncate(52.55,0), #52
round(52.45, 1), #52.5
round(52.54, 1), #52.5
truncate(52.45,1), #52.4
truncate(52.54,1), #52.5
round(floor(52.45*10)/10,1), #52.4
round(floor(52.54*10)/10,1) #52.5
#輸出:52|52|53|53|52|52|53|52|52|52.5|52.5|52.4|52.5|52.4|52.5
小數點后一位以<0.5取0,>=0.5取0.5
floor(expr/0.5)*0.5