2

私の iPhone アプリでは、整数を最も近い 5 の倍数に丸める必要があります。

例: ラウンド 6 から = 10、ラウンド 23 から = 25 など

編集

言い忘れましたが、切り上げたいだけです!すべての状況で、たとえば 22 は 25 に切り上げられます。

4

7 に答える 7

7

常に切り上げたい場合は、次を使用できます。

int a = 22;
int b = (a + 4) / 5 * 5; // b = 25;

float の場合は、次のようaにキャストを追加する必要があります。int

int b = ((int)a + 4) / 5 * 5; // b = 25;

ceil関数を使用して同じ結果を達成できることに注意してください。

int a = 22;
int b = ceil((float)a / 5) * 5; // b = 25;

古い答え:

の最も近い倍数に丸めるに5は、次のようにします。

int a = 23;
int b = (int)(a + 2.5) / 5 * 5;
于 2012-04-08T12:42:49.077 に答える
4

使用する :

int rounded = (i%5==0) ? i : i+5-(i%5);

例 :

    for (int i=1; i<25; i++)
    {
        int k= (i%5==0) ? i : i+5-(i%5);

        printf("i  : %d => rounded : %d\n",i,k);
    }

出力:

i  : 1 => rounded : 5
i  : 2 => rounded : 5
i  : 3 => rounded : 5
i  : 4 => rounded : 5
i  : 5 => rounded : 5
i  : 6 => rounded : 10
i  : 7 => rounded : 10
i  : 8 => rounded : 10
i  : 9 => rounded : 10
i  : 10 => rounded : 10
i  : 11 => rounded : 15
i  : 12 => rounded : 15
i  : 13 => rounded : 15
i  : 14 => rounded : 15
i  : 15 => rounded : 15
i  : 16 => rounded : 20
i  : 17 => rounded : 20
i  : 18 => rounded : 20
i  : 19 => rounded : 20
i  : 20 => rounded : 20
i  : 21 => rounded : 25
i  : 22 => rounded : 25
i  : 23 => rounded : 25
i  : 24 => rounded : 25
于 2012-04-08T12:59:59.020 に答える
1

整数ソリューションの場合、丸めに4でバイアスされたmod5を使用します。

int i;
int i5;

i = 6;
i5 = i + 4 - ((i+4) % 5);
NSLog(@"i: %i, i5: %i", i, i5);

i = 22;
i5 = i + 4 - ((i+4) % 5);
NSLog(@"i: %i, i5: %i", i, i5);
NSLog output:  

i:6、i5:10
i:22、i5:25

于 2012-04-08T12:48:42.403 に答える
1

次の 5 の倍数に切り上げるには、たとえば、次のように使用できます。

(int) (5.0 * ceil((number/5.0)))
于 2012-04-08T12:55:24.183 に答える
1

おそらく、この質問に対する別の回答は必要ありませんが、個人的には、こちらの方がすっきりしていると思います。

int ans = ceil(input / 5.0) * 5.0;
于 2012-04-08T12:55:28.863 に答える
0

整数のみを四捨五入する必要があるため、num+5-(num%5)十分なはずです。

古い回答

私はobjective-cについてあまり知りませんが、これで十分ではありません。

r = num%5
r > 2 ? num+5-r : n-r
于 2012-04-08T12:41:41.857 に答える