1. ホーム
  2. c

[解決済み] 整数の割り算を丸める(切り捨てるのではなく)。

2023-03-17 11:19:41

質問

ある数字を最も近い整数に丸める方法を知りたくなりました。たとえば、私が持っていた場合。

int a = 59 / 4;

を浮動小数点で計算すると14.75になりますが、その結果を"a"に15として格納するにはどうすればよいでしょうか?

どのように解決するのですか?

int a = 59.0f / 4.0f + 0.5f;

これは、'.'以降を破棄するため、int型に代入する場合のみ機能します。

編集してください。 この解決策は最も単純な場合にのみ機能します。より堅牢な解決策としては

unsigned int round_closest(unsigned int dividend, unsigned int divisor)
{
    return (dividend + (divisor / 2)) / divisor;
}