C で整数を最も近い倍数に効率的に切り上げるにはどうすればよいですか?

DDD
リリース: 2024-11-25 14:21:12
オリジナル
321 人が閲覧しました

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) の 2 つの整数引数を受け取ります。切り上げた値を整数として返します。

関数はまず、倍数が 0 であるかどうかを確認します。等しい場合、関数は元の値を変更せずに返します。

倍数がゼロでない場合、関数は numToRound を倍数で割った余りの絶対値を計算します。これにより、元の値とその下の最も近い倍数の差が得られます。

次に、関数は元の値が負であるかどうかを確認します。一致する場合、切り上げ値が元の値以上になるように、それに応じて切り上げ値が調整されます。正の値の場合、この関数は必要な量を加算して最も近い倍数に切り上げます。

次の例を考えてみましょう:

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

いずれの場合も、関数は正しく丸められます。元の値から指定された倍数の最も近い倍数まで。

以上がC で整数を最も近い倍数に効率的に切り上げるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート