Java:四舍五入到5的最接近倍数(向上或向下)

Java:四舍五入到5的最接近倍数(向上或向下),java,rounding,Java,Rounding,我需要将一个数字四舍五入到5的最接近倍数(向上或向下)。例如,下面是需要向上/向下取整的数字列表及其旁边的数字 12.5 10 62.1 60 68.3 70 74.5 75 80.7 80 数字只能是正数。没有测试过,但是5*(数学四舍五入(f/5))应该可以工作像这样的东西怎么样: return round((number/5))*5; publicstaticvoidmain(字符串参数[]){ 双num=67.5; 如果(数值%5==0) System.out.printl

我需要将一个数字四舍五入到5的最接近倍数(向上或向下)。例如,下面是需要向上/向下取整的数字列表及其旁边的数字

12.5  10
62.1  60
68.3  70
74.5  75
80.7  80

数字只能是正数。

没有测试过,但是
5*(数学四舍五入(f/5))应该可以工作

像这样的东西怎么样:

return round((number/5))*5;
publicstaticvoidmain(字符串参数[]){
双num=67.5;
如果(数值%5==0)
System.out.println(“OK”);
否则如果(数值%5<2.5)
num=num-num%5;
其他的
num=num+(5-num%5);
系统输出打印项数(num);
}
试试这个

最接近5的倍数 对于上限值

5*(Math.ceil(Math.abs(number/5)));
对于较低的值

5*(Math.floor(Math.abs(number/5)));

它只给出了正值。

格菲的解决方案是可行的,但我必须明确地转换为double,如下所示:
5*(Math.round((double)f/5))
本页还有许多其他解决方案,但我相信这是最简洁的一个

要查找给定数字的最接近x的倍数

设x为倍数,num为给定数:

// The closest multiple of x <= num
int multipleOfX = x * ( num / x );

您希望中点(例如12.5)发生什么变化?@AndroidDev如果
12.5等于10
,那么很遗憾,我的答案不起作用。在这种情况下,你必须应用Achtyaok的想法,我真的很接近。您的解决方案与koljaTM相同。我不确定谁得到了支票。他的节目0,你的节目8,但时间是一样的。谁应该得到复选标记?这不起作用。。。例-75.5应该四舍五入到76,但它不是t@MilindaBandara你为什么认为75.5应该返回76?根据OP给出的例子,应该记住这不是一个万无一失的解决方案!如果值非常大,您将遇到双精度问题。请注意,这只会返回您的四舍五入答案。@chamzz.dot Yap
// The closest multiple of x <= num
int multipleOfX = x * ( num / x );
int multipleOf5 = 5 * ( num / 5 );