ROUND函数用于四舍五入取整,可指定小数位数,如ROUND(3.14159, 2)返回3.14;FLOOR函数向下取整,返回不大于X的最大整数,如FLOOR(3.9)返回3,常用于分页或保守估算。

在mysql中处理数值时,ROUND和FLOOR是两个常用的数学函数,用于对浮点数或小数进行取整操作。它们的功能不同,适用于不同的场景。
ROUND:四舍五入取整
ROUND(X) 函数将数值 X 按照四舍五入规则进行取整。还可以指定保留的小数位数:ROUND(X, D),其中 D 表示保留 D 位小数。
常见用法包括:
- ROUND(3.14159) 返回 3
- ROUND(3.14159, 2) 返回 3.14
- ROUND(3.65, 1) 返回 3.7
- ROUND(123.456, -1) 返回 120(负数表示对整数部分进行舍入)
这个函数适合需要保留特定精度的计算,比如金额、评分等场景。
FLOOR:向下取整
FLOOR(X) 函数返回小于或等于 X 的最大整数,也就是“向下取整”。
- FLOOR(3.9) 返回 3
- FLOOR(5.1) 返回 5
- FLOOR(-3.2) 返回 -4
注意:FLOOR 总是往更小的方向取整,负数时尤其明显。
它常用于分页计算、数量统计等需要“保守估算”的场景,比如每页显示10条,总记录数为103时,页数应为 FLOOR((103-1)/10)+1 或类似逻辑。
实际应用示例
假设有一张商品表 products,包含价格字段 price(如 19.87),你想展示四舍五入到一位小数的价格,以及折扣后向下取整的优惠价:
// 查询语句示例
name,
ROUND(price, 1) AS rounded_price,
FLOOR(price * 0.8) AS discounted_floor
FROM products;
结果中,原价 19.87 显示为 19.9,打折后(15.896)向下取整为 15。
基本上就这些。根据需求选择合适的方法:需要精确控制小数位用 ROUND,需要确保不高于某值用 FLOOR。


