📅  最后修改于: 2023-12-03 15:14:16.392000             🧑  作者: Mango
在 C++ 中,我们可以使用两个特殊的数学库函数 floor 和 ceil 来进行数值的向下取整和向上取整操作。这两个函数分别位于
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(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标准。在比较精确的场合下,我们应该避免使用浮点数进行计算,而应该使用相关的高精度数学库。