while(potatosconeflour <= c1) {
potatosconeflour = potatosconeflour + potatosconeflour;
}
我使用了一段时间的循环,该循环在输入数字24后不起作用。例如,我想将任何数字舍入8个倍数。
例如:1至8、13至16、23至24
我会将源号除以将其舍入的数字(谨慎:将其施放到double
,以便您不使用整数部门!),然后将其乘以相同的数字:
public static int roundToMultiple(int toRound, int roundBy) {
return roundBy * (int) Math.ceil((double)toRound / roundBy);
}
如果要四舍五入到最近的倍数,那就是 ((i + 3) / 8) * 8
。(如果是 8n + 4
,则会下降。如果要从一半开始汇总,请使用 i + 4
而不是 i + 3
。如果要圆形"一路", 9
to 16
to CC_8,请使用 i + 7
。)
使用返回其余部分的Modulo Operator(%
),然后将其余的从8
添加到您的号码。
public static void main(String[] args) {
int i = 13;
int rem = i % 8 > 0 ? i % 8 : 8;
i += 8 - rem;
System.out.println(i);
}
输出:16