函数功能
FLOOR(x)
返回小于或等于 x
的最大整数。这个函数也称为"地板函数"。
语法
规则与示例
输入 | 返回值 | 说明 |
---|---|---|
正小数 | 向下取整 |
|
负小数 | 向负无穷方向取整 |
|
整数 | 它本身 |
|
|
|
|
实际应用示例
假设我们有一个 sales
表,记录销售金额:
id | product_name | price | quantity |
---|---|---|---|
1 | 笔记本电脑 | 2999.99 | 2 |
2 | 鼠标 | 149.50 | 5 |
3 | 键盘 | 399.00 | 3 |
4 | 显示器 | 1799.75 | 1 |
1. 直接计算地板值
查询结果:
price | floor_price |
---|---|
2999.99 | 2999 |
149.50 | 149 |
399.00 | 399 |
1799.75 | 1799 |
2. 计算整数数量
计算每种产品至少需要多少整箱包装(假设每箱装10个):
3. 价格去零处理
将所有价格去掉小数部分:
4. 与 CEILING() 对比
重要注意事项
- 1.
返回值类型:
FLOOR()
返回的值类型与输入参数的类型相同。
- •
如果
x
是整数,返回整数 - •
如果
x
是浮点数,返回浮点数(但值为整数)
- 2.
精度问题:对于浮点数,由于浮点运算的特性,可能会有精度问题。
- 3.
字符串转换:如果参数是字符串,MySQL 会尝试将其转换为数字。
- 4.
与 ROUND() 的区别:
- •
FLOOR()
总是向下取整 - •
ROUND()
进行四舍五入 - 5.
与 TRUNCATE() 的区别:
- •
FLOOR()
是数学上的向下取整 - •
TRUNCATE()
是直接截断小数部分
应用场景总结
- 1.
价格处理:去掉价格的小数部分
- 2.
分页计算:计算总页数
- 3.
年龄计算:计算整岁年龄
- 4.
装箱计算:计算完整箱数
- 5.
数据分组:将连续数据离散化
总结
- •
用途:向下取整,获取不大于原数的最大整数
- •
正数:向零方向取整
- •
负数:向负无穷方向取整(与
CEILING()
相反) - •
适用场景:价格调整、数量计算、需要确保"不超过"某个数量的场景
这个函数在处理需要截断小数部分或向下舍入的业务逻辑时非常有用。

優(yōu)網(wǎng)科技秉承"專業(yè)團(tuán)隊(duì)、品質(zhì)服務(wù)" 的經(jīng)營理念,誠信務(wù)實(shí)的服務(wù)了近萬家客戶,成為眾多世界500強(qiáng)、集團(tuán)和上市公司的長期合作伙伴!
優(yōu)網(wǎng)科技成立于2001年,擅長網(wǎng)站建設(shè)、網(wǎng)站與各類業(yè)務(wù)系統(tǒng)深度整合,致力于提供完善的企業(yè)互聯(lián)網(wǎng)解決方案。優(yōu)網(wǎng)科技提供PC端網(wǎng)站建設(shè)(品牌展示型、官方門戶型、營銷商務(wù)型、電子商務(wù)型、信息門戶型、微信小程序定制開發(fā)、移動(dòng)端應(yīng)用(手機(jī)站、APP開發(fā))、微信定制開發(fā)(微信官網(wǎng)、微信商城、企業(yè)微信)等一系列互聯(lián)網(wǎng)應(yīng)用服務(wù)。