欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 上取整,下取整,四舍五入

上取整,下取整,四舍五入

2025/3/20 13:45:58 来源:https://blog.csdn.net/2301_81354767/article/details/146384585  浏览:    关键词:上取整,下取整,四舍五入

1. 上取整(Ceiling)

上取整是指将一个数向上舍入到最接近的整数。

方法:
  • 使用 <cmath> 库中的 std::ceil 函数。

示例代码:
#include <iostream>
#include <cmath> // 包含 std::ceilint main() {double num = 3.14;double result = std::ceil(num); // 上取整std::cout << "Ceiling of " << num << " is: " << result << std::endl; // 输出 4return 0;
}

2. 下取整(Floor)

下取整是指将一个数向下舍入到最接近的整数。

方法:
  • 使用 <cmath> 库中的 std::floor 函数。

示例代码:
#include <iostream>
#include <cmath> // 包含 std::floorint main() {double num = 3.14;double result = std::floor(num); // 下取整std::cout << "Floor of " << num << " is: " << result << std::endl; // 输出 3return 0;
}

3. 四舍五入(Rounding)

四舍五入是指将一个数舍入到最接近的整数。

方法:
  • 使用 <cmath> 库中的 std::round 函数。

示例代码:
#include <iostream>
#include <cmath> // 包含 std::roundint main() {double num = 3.14;double result = std::round(num); // 四舍五入std::cout << "Rounded value of " << num << " is: " << result << std::endl; // 输出 3return 0;
}

4. 使用整数运算

如果你只需要对整数进行四舍五入,可以使用整数运算。

#include <iostream>int main() {double num = 3.6;int rounded = static_cast<int>(num + 0.5);std::cout << "Rounded value: " << rounded << std::endl;  // 输出 4

5. 自定义四舍五入到指定小数位

如果需要将浮点数四舍五入到指定的小数位数,可以使用以下方法:

方法:
  1. 将数乘以 (n 是保留的小数位数)。

  2. 使用 std::round 四舍五入。

  3. 将结果除以 

示例代码:
#include <iostream>
#include <cmath> // 包含 std::rounddouble roundToDecimal(double num, int decimalPlaces) {double factor = std::pow(10, decimalPlaces);return std::round(num * factor) / factor;
}int main() {double num = 3.14159;double result = roundToDecimal(num, 2); // 四舍五入到 2 位小数std::cout << "Rounded value of " << num << " is: " << result << std::endl; // 输出 3.14return 0;
}

6. 强制类型转换实现下取整

如果不需要使用 <cmath> 库,可以通过强制类型转换实现下取整。

方法:
  • 将浮点数强制转换为整数类型(如 int)。

示例代码:
#include <iostream>int main() {double num = 3.14;int result = static_cast<int>(num); // 强制类型转换实现下取整std::cout << "Floor of " << num << " is: " << result << std::endl; // 输出 3return 0;
}

7. 上取整的替代方法

如果不想使用 std::ceil,可以通过以下方法实现上取整:

方法:
  • 如果数是整数,直接返回;否则,返回整数部分加 1。

示例代码:
#include <iostream>int customCeil(double num) {int intPart = static_cast<int>(num);if (num == intPart) {return intPart;} else {return intPart + 1;}
}int main() {double num = 3.14;int result = customCeil(num); // 自定义上取整std::cout << "Ceiling of " << num << " is: " << result << std::endl; // 输出 4return 0;
}

总结

操作方法示例代码
上取整std::ceilstd::ceil(3.14) → 4
下取整std::floorstd::floor(3.14) → 3
四舍五入std::roundstd::round(3.14) → 3
自定义小数位四舍五入乘 10n10n 后 std::roundroundToDecimal(3.14159, 2) → 3.14
强制类型转换下取整static_cast<int>static_cast<int>(3.14) → 3
自定义上取整判断小数部分并加 1customCeil(3.14) → 4

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词