首頁 > 後端開發 > C++ > 如何有效地將整數舍入到 C 中最接近的倍數?

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

DDD
發布: 2024-11-25 14:21:12
原創
341 人瀏覽過

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(477, 100) → 500
  • roundUp(52, 20) → 60
  • roundUp(74, 30) → 90
在每種情況下,函數都會正確捨入原始值最大為給定倍數的最接近倍數。

以上是如何有效地將整數舍入到 C 中最接近的倍數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板