首页 > 后端开发 > C++ > 正文

如何有效地将整数舍入到 C 中最接近的倍数?

DDD
发布: 2024-11-25 14:21:12
原创
322 人浏览过

How can I efficiently round up an integer to the nearest multiple in C  ?

将整数四舍五入到倍数

在 C 中,将整数值四舍五入到另一个数字的最接近倍数是一个简单的操作。以下函数有效且准确地完成此任务:

int roundUp(int numToRound, int multiple) {
    if (multiple == 0) {
        return numToRound;
    }

    int remainder = abs(numToRound) % multiple;
    if (remainder == 0) {
        return numToRound;
    }

    if (numToRound < 0) {
        return -(abs(numToRound) - remainder);
    } else {
        return numToRound + multiple - remainder;
    }
}
登录后复制

此函数采用两个整数参数:要舍入的值 (numToRound) 和要舍入的倍数 (multiple)。它将向上舍入的值返回为整数。

函数首先检查倍数是否为零。如果是,则函数返回原始值不变。

如果倍数不为零,则函数计算 numToRound 除以倍数所得的余数的绝对值。这给出了原始值和它下面最接近的倍数之间的差异。

接下来,该函数检查原始值是否为负数。如果是,它会相应地调整舍入值,以确保它仍然大于或等于原始值。对于正值,该函数只需添加必要的金额即可向上舍入到最接近的倍数。

示例

请考虑以下示例:

  • roundUp(7, 100) → 100
  • roundUp(117, 100) → 200
  • roundUp(477, 100) → 500
  • roundUp(52, 20) → 60
  • roundUp(74, 30) → 90

在每种情况下,函数都会正确舍入原始值最大为给定倍数的最接近倍数。

以上是如何有效地将整数舍入到 C 中最接近的倍数?的详细内容。更多信息请关注PHP中文网其他相关文章!

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