Skip to content

MySQL 小数取舍函数


在数据库开发中,经常需要处理数值数据,比如四舍五入、向上取整、向下取整或者截断小数。MySQL 提供了一系列数值函数,让这些操作变得非常方便。

ROUND(number, decimals) 用于四舍五入,保留指定的小数位。

  • number:要处理的数字

  • decimals:保留的小数位,省略则默认四舍五入到整数

SELECT ROUND(123.4567, 2); -- 结果: 123.46
SELECT ROUND(123.4567); -- 结果: 123
SELECT ROUND(-123.4567, 1); -- 结果: -123.5

场景:统计平均值、财务金额显示、数据可读性优化。

CEIL(number)CEILING(number)把数字向上取整到最接近的整数

SELECT CEIL(123.1); -- 结果: 124
SELECT CEIL(-123.9); -- 结果: -123

场景:计算库存需求、分页总页数、数量向上取整。

FLOOR(number)把数字向下取整到最接近的整数

SELECT FLOOR(123.9); -- 结果: 123
SELECT FLOOR(-123.1); -- 结果: -124

场景:计算折扣、剩余数量、向下取整保证不超量。

TRUNCATE(number, decimals) 用于截断数字到指定小数位,不会四舍五入,只是直接舍掉多余的小数。

SELECT TRUNCATE(123.4567, 2); -- 结果: 123.45
SELECT TRUNCATE(-123.4567, 1); -- 结果: -123.4

场景:保留精度但不改变数值大小,财务、计量、精确控制。