不用round函数写一个c++四舍五入小数的代
时间: 2024-10-10 08:11:11 浏览: 43
在C++中,不用`round()`函数也可以实现简单的四舍五入功能。一种常见的方法是利用数学运算和条件判断。例如,如果你想向上取整(对5进位),可以使用以下代码:
```cpp
#include <cmath>
#include <iostream>
int round_up(double num) {
int integral = static_cast<int>(num);
double fraction = num - integral;
if (fraction >= 0.5 || std::abs(fraction - 0.5) <= std::numeric_limits<double>::epsilon()) { // 浮点数精度问题处理
return integral + 1;
} else {
return integral;
}
}
int main() {
double input;
std::cout << "Enter a number: ";
std::cin >> input;
std::cout << "Rounded up: " << round_up(input) << std::endl;
return 0;
}
```
如果你想向下取整(对5舍去),则只需去掉`fraction >= 0.5`这行即可。
请注意,由于浮点数计算的精度限制,这里使用了`std::numeric_limits<double>::epsilon()`来判断是否接近半个单位,以防止因浮点误差导致错误的结果。
阅读全文