总结了MySQL中取整和取小数中遇到的问题和解决的几个方法:不四舍五入取整、取小数、四舍五入取整、取小数、向下、向上取整。

其中:

不四舍五入取整(截取整数部分)就是‘向下取整’;
除了用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指取几位小数

了解其他数学函数前往:MySQL math函数

实例

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
Logo

本社区面向用户介绍CSDN开发云部门内部产品使用和产品迭代功能,产品功能迭代和产品建议更透明和便捷

更多推荐