不四舍五入取整(截取整数部分)就是向下取整。
除了用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