c++中floor函数怎么用

来源:编程学习作者:弦宿​头衔:草根站长
导读:本期聚焦于小伙伴创作的《c++中floor函数怎么用》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《c++中floor函数怎么用》有用,将其分享出去将是对创作者最好的鼓励。

在c++的标准数学库中,floor函数用于实现向下取整的功能,它会返回不大于传入参数的最大整数值,返回值类型与传入参数的浮点类型一致。该函数主要处理浮点数的取整需求,是数值计算场景中非常常用的工具函数。

c++中floor函数怎么用

floor函数的基本信息

头文件引入

使用floor函数前需要引入对应的头文件,在c++中该函数的声明位于<cmath>头文件中,因此代码开头需要添加如下引入语句:

#include <cmath>

函数原型

floor函数针对不同浮点类型提供了重载版本,常见的函数原型如下:

  • double floor(double x);:处理double类型参数
  • float floor(float x);:处理float类型参数,对应函数为floorf
  • long double floor(long double x);:处理long double类型参数,对应函数为floorl

参数与返回值

floor函数仅接收一个浮点类型的参数x,返回值是小于等于x的最大整数,返回值的数据类型和参数x的类型保持一致。如果传入的参数是整数,返回值就是该整数本身;如果传入的是负数,返回值会比原数更小,例如floor(-2.3)的返回值是-3.0。

使用示例

基础用法示例

下面通过一段简单的代码展示floor函数对不同数值的处理结果:

#include <iostream>
#include <cmath>

int main() {
    // 正数测试
    double a = 3.7;
    double res_a = floor(a);
    std::cout << "floor(" << a << ")的结果是:" << res_a << std::endl;

    // 负数测试
    double b = -2.3;
    double res_b = floor(b);
    std::cout << "floor(" << b << ")的结果是:" << res_b << std::endl;

    // 整数测试
    double c = 5.0;
    double res_c = floor(c);
    std::cout << "floor(" << c << ")的结果是:" << res_c << std::endl;

    // 零值测试
    double d = 0.0;
    double res_d = floor(d);
    std::cout << "floor(" << d << ")的结果是:" << res_d << std::endl;

    return 0;
}

上述代码的输出结果如下:

floor(3.7)的结果是:3
floor(-2.3)的结果是:-3
floor(5)的结果是:5
floor(0)的结果是:0

不同浮点类型的使用示例

floor函数也支持float和long double类型,示例代码如下:

#include <iostream>
#include <cmath>

int main() {
    float f_val = 4.9f;
    float f_res = floor(f_val); // 等价于floorf(f_val)
    std::cout << "float类型测试,floor(" << f_val << ")的结果是:" << f_res << std::endl;

    long double ld_val = 7.2l;
    long double ld_res = floor(ld_val); // 等价于floorl(ld_val)
    std::cout << "long double类型测试,floor(" << ld_val << ")的结果是:" << ld_res << std::endl;

    return 0;
}

注意事项

  • floor函数的返回值是浮点类型,如果需要得到整数类型的结果,需要手动进行类型转换,例如int res = (int)floor(3.7);,转换时需要注意负数的转换结果是否符合预期。
  • 不要混淆floor函数和ceil、round函数:ceil是向上取整,返回大于等于参数的最小整数;round是四舍五入取整,返回最接近参数的整数。
  • 如果传入的参数是非数值(NaN),floor函数的返回值也是NaN,使用时如果需要处理异常数值,需要先做合法性判断。

常见取整函数对比

下面通过表格对比floor和其他常见取整函数的区别:

函数名功能描述示例(参数为3.7)示例(参数为-2.3)
floor向下取整,返回不大于参数的最大整数3.0-3.0
ceil向上取整,返回不小于参数的最小整数4.0-2.0
round四舍五入取整,返回最接近参数的整数4.0-2.0
trunc截断取整,直接去掉小数部分3.0-2.0

floormath_hc++向下取整c++数学函数修改时间:2026-06-28 05:18:16

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。