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的整数部分,小数部分直接舍弃。

mysql sum保留小数或整数方式

--输出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,每种方法都有明确的适用场景。