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

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

Susan Sarandon
Susan Sarandon原創
2024-11-26 14:04:13267瀏覽

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

在C 中捨入為數字的倍數

在程式設計中處理數字時,可能需要將數值捨入為另一個數字最接近的倍數。在 C 中,有多種方法可以完成此任務,但本文將重點介紹一種利用整數算術實現精確舍入的有效方法。

提供的程式碼片段 roundUp 為正數提供了一個簡單的解。它計算輸入數字 numToRound 除以倍數時的餘數,如果餘數非零,則將倍數與 numToRound 相加。這可確保結果是大於或等於輸入的最接近倍數。

但是,對於負數,原始程式碼無法提供所需的行為。為了容納負數,引入了 roundUp 的修改版本。此版本在執行舍入操作之前計算輸入數字的絕對值。此外,它還採用條件邏輯根據輸入的符號調整結果的符號。這可確保結果始終大於或等於輸入,無論其符號為何。

以下是處理正數和負數的更新碼:

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

現在, roundUp 函數為正數和負數輸入提供一致的行為,確保精確舍入到給定數字的最接近的倍數。

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

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