在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中文網其他相關文章!