mysql sum保留小数或整数方式
作者:技术拾光时间:2026-06-13 08:25:02浏览:474
MySQL中控制小数位常用方法:CAST将数值转为decimal可精确保留两位小数;ROUND实现四舍五入到指定小数位或取整;FLOOR向下取整,CEILING向上取整。实际运用中,财务场景常用decimal,统计汇总用ROUND,需要截断或进位则用FLOOR/CEILING。根据精度需求选择合适函数。
在MySQL中进行数值计算时,经常需要控制小数位数——是保留两位、直接取整,还是向上或向下舍入?不同场景有不同解法。下面梳理几种最常用的方式,代码示例可以直接使用。
转成decimal保留两位小数
SELECT cast(sum(需要计算列) AS decimal(11,2)) FROM 表名
使用ROUND函数保留两位小数或取整
- ROUND(X) -- 将值 X 四舍五入为整数,无小数位
- ROUND(X,D) -- 将值 X 四舍五入为小数点后 D 位的数值,D为小数位数。若要将 X 值小数点左边的 D 位保留,可将 D 设为负值。
--输出2 select ROUND(2.22) --输出3 select ROUND(2.52) --输出2.22 select ROUND(2.2222,2) --输出2.23 select ROUND(2.2252,2)
使用FLOOR函数保留整数
FLOOR(X)表示向下取整,只返回X的整数部分,小数部分直接舍弃。

--输出1000 select FLOOR(1000.22) select FLOOR(1000.92)
使用CEILING函数保留整数
CEILING(X) 表示向上取整,只返回X的整数部分,小数部分直接舍弃。
--输出1001 select CEILING(1000.22) select CEILING(1000.52)
总结
以上就是处理MySQL数值小数位的几种常见方案,可根据实际需求选用。金额统计场景推荐使用decimal或ROUND,需要强制向下或向上取整时,使用FLOOR或CEILING,每种方法都有明确的适用场景。
