我想要舍入一个数字(十进制),以便它可以被5整除.
例如,我有一些数字和数字后的数字:
Number Rounded
0.4 5
3.4 5
7.3 10
Run Code Online (Sandbox Code Playgroud)
我可以用ceil这个转换double到int并使用while循环,让他们的5的倍数,但我不知道是否有完成这个的任何聪明的办法.
谢谢.
Sör*_*ren 37
您可以先除以5然后使用Math.Ceiling来舍入值.之后,你可以再次乘以5.
int rounded = (int) Math.Ceiling(Number / 5) * 5
Run Code Online (Sandbox Code Playgroud)
Dr.*_*ius 10
如果你想
f[6] = 10
f[-1] = 0
f[-6] = -5
Run Code Online (Sandbox Code Playgroud)
如果你想要:
f[6] = 10
f[-1] = -5
f[-6] = -10
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
f[x_] := Sign[x] Ceiling[Abs[x]/5] * 5
Run Code Online (Sandbox Code Playgroud)
C#:
var rounded = (int) Math.Sign(x) * Math.Ceiling(Math.Abs(x)/5) * 5;
Run Code Online (Sandbox Code Playgroud)