2011-02-02 198 views
13

我想圓了一個編號(十進制),因此,它的整除5四捨五入了一個號碼,以便它是由5

例如,我有幾個數字和四捨五入後的數字整除:

Number  Rounded 
0.4   5 
3.4   5 
7.3   10 

我可以用ceil轉換這個doubleint並使用while循環,讓他們的5的倍數,但我不知道是否有完成這個的任何聰明的辦法。

謝謝。

+0

是您輸入`decimal`或`double`? – AakashM 2011-02-02 13:34:41

+0

http://stackoverflow.com/questions/752655/round-in-ms-sql-on-0-05-or-0-00這裏是SQL – adopilot 2011-02-02 13:38:02

回答

6

如何:

5 * decimal.Ceiling(num/5) 
35

你可以先除以5,然後用Math.Ceiling圓的價值。之後,你可以再乘以5。

int rounded = (int) Math.Ceiling(Number/5) * 5 
9

如果你想

f[6] = 10 
f[-1] = 0 
f[-6] = -5 

Sören's answer是OK。

相反,如果你想:

f[6] = 10 
f[-1] = -5 
f[-6] = -10 

,你可以這樣做:

f[x_] := Sign[x] Ceiling[Abs[x]/5] * 5 

C#:

var rounded = (int) Math.Sign(x) * Math.Ceiling(Math.Abs(x)/5) * 5;