首頁 >後端開發 >C++ >如何在 C 中有效地將數字四捨五入到最接近的倍數?

如何在 C 中有效地將數字四捨五入到最接近的倍數?

Linda Hamilton
Linda Hamilton原創
2024-12-02 01:38:13162瀏覽

How to Efficiently Round Up Numbers to the Nearest Multiple in C  ?

C 語言中將數字四捨五入到最接近的倍數

將數字四捨五入到最接近的倍數是編程中的基本操作。在 C 中,可以使用簡單的整數數學來實現。

簡單舍入演算法

初始演算法檢查 0 的倍數,傳回其中原始的數字案件。否則,它會計算向下舍入的值並將倍數加到其中。然而,這種方法僅適用於正數。

改良的捨入演算法

為了解決負數問題,需要更強大的演算法。這個改進版本利用數字的絕對值,並確保舍入結果始終大於或等於輸入。

實作:

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;
}

這個演算法正確處理正數和負數,提供所提供範例中指定的預期舍入值。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn