首页 > 后端开发 > C++ > C 缺少'round()”函数吗?如何实现?

C 缺少'round()”函数吗?如何实现?

Patricia Arquette
发布: 2024-12-23 06:46:14
原创
858 人浏览过

Is C   Missing a `round()` Function, and How Can It Be Implemented?

C 中的浮点舍入:缺少 round()

虽然 ceil() 和 Floor() 等函数可以在math.h 用于对浮点数进行舍入,标准 C 库缺少专用的 round() 函数。这导致了这样的问题:C 98 标准中是否缺少 round() 或者只是以不同的名称存在。

自定义 round() 函数的实现

由于 round() 不是原生提供的,因此用户不得不创建自己的实现。一种基于四舍五入方法的实现是:

double round(double d) {
  return floor(d + 0.5);
}
登录后复制

但是,值得注意的是,此实现可能并不总是产生所需的结果,因为它对恰好是的数字进行四舍五入距离整数到最接近的偶数 0.5。

替代舍入方法

还存在其他舍入方法,例如舍入到偶数,它提供了偏差较小的舍入方法,并且是大批量舍入的首选方法。

包含在C 11

幸运的是,C 11 引入了内置的 round() 函数,包括std::round、std::lround 和 std::llround,为各种数据类型提供标准舍入行为。这些函数提供比自定义解决方案更强大、更高效的实现。

以上是C 缺少'round()”函数吗?如何实现?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板