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中文网其他相关文章!