C++如何将小数的小数部分去掉
时间: 2024-09-13 10:05:58 浏览: 58
n位正整数去掉k位数字得到最小数(回溯法C++代码)
在C++中,如果你想移除一个小数的纯小数部分(即小数点后的所有数字),直到达到最接近的整数,可以使用`std::round`函数或者自定义一个简单的算法。`std::round`函数是C++标准库提供的,适用于double类型。
以下是使用`std::round`的例子:
```cpp
#include <cmath> // 包含round函数
double removeFractional(double num) {
return std::round(num); // 将小数部分四舍五入到最近的整数
}
int main() {
double input = 3.756;
double result = removeFractional(input);
std::cout << "Input with fraction removed: " << result << std::endl; // 输出3
return 0;
}
```
如果你不想依赖库函数,也可以手动实现一个简单的取整算法,如向下取整(`std::floor`)或向上取整(`std::ceil`):
```cpp
double floor_round(double num) {
return static_cast<double>(std::floor(num + 0.5)); // 向上取整
}
double ceil_round(double num) {
return static_cast<double>(std::ceil(num)); // 向下取整
}
```
选择哪种取决于你需要的结果是更靠近还是略低于原数。
阅读全文