📜  cpp 中的 floor 和 ceil - C++ (1)

📅  最后修改于: 2023-12-03 15:14:16.392000             🧑  作者: Mango

C++ 中的 floor 和 ceil

在 C++ 中,我们可以使用两个特殊的数学库函数 floor 和 ceil 来进行数值的向下取整和向上取整操作。这两个函数分别位于 头文件中。

floor 函数

floor 函数可以将一个浮点数向下取整,返回值为一个整数。例如,floor(3.14) 的值为 3。

double floor(double x);

以下是几个示例:

#include <iostream>
#include <cmath>

int main()
{
    double x = 3.14;
    std::cout << "floor(" << x << ") = " << floor(x) << std::endl;
    
    x = -3.14;
    std::cout << "floor(" << x << ") = " << floor(x) << std::endl;

    x = 5.5;
    std::cout << "floor(" << x << ") = " << floor(x) << std::endl;

    x = -5.5;
    std::cout << "floor(" << x << ") = " << floor(x) << std::endl;

    return 0;
}

输出:

floor(3.14) = 3
floor(-3.14) = -4
floor(5.5) = 5
floor(-5.5) = -6
ceil 函数

ceil 函数可以将一个浮点数向上取整,返回值为一个整数。例如,ceil(3.14) 的值为 4。

double ceil(double x);

以下是几个示例:

#include <iostream>
#include <cmath>

int main()
{
    double x = 3.14;
    std::cout << "ceil(" << x << ") = " << ceil(x) << std::endl;
    
    x = -3.14;
    std::cout << "ceil(" << x << ") = " << ceil(x) << std::endl;

    x = 5.5;
    std::cout << "ceil(" << x << ") = " << ceil(x) << std::endl;

    x = -5.5;
    std::cout << "ceil(" << x << ") = " << ceil(x) << std::endl;

    return 0;
}

输出:

ceil(3.14) = 4
ceil(-3.14) = -3
ceil(5.5) = 6
ceil(-5.5) = -5

需要注意的是,对于较大的数,这两个函数的精度可能会出现问题,这是因为浮点数在计算机中的表示方式是有限的,参考IEEE 754标准。在比较精确的场合下,我们应该避免使用浮点数进行计算,而应该使用相关的高精度数学库。