有时我需要将浮球绕到最近的四分之一,有时候到最近的一半。
对于我使用的一半
Math.round(myFloat*2)/2f
我可以用
Math.round(myFloat*4)/4f
。
但还有其他建议吗?
答案 0 :(得分:26)
您只需要:
Math.round(myFloat*4)/4f
由于一半也是两个季度,这个单一的等式也会照顾你的半舍入。对于半舍入或四分之一舍入,您不需要执行两个不同的等式。
代码示例:
public class Main {
public static void main(String[] args) {
float coeff = 4f;
System.out.println(Math.round(1.10*coeff)/coeff);
System.out.println(Math.round(1.20*coeff)/coeff);
System.out.println(Math.round(1.33*coeff)/coeff);
System.out.println(Math.round(1.44*coeff)/coeff);
System.out.println(Math.round(1.55*coeff)/coeff);
System.out.println(Math.round(1.66*coeff)/coeff);
System.out.println(Math.round(1.75*coeff)/coeff);
System.out.println(Math.round(1.77*coeff)/coeff);
System.out.println(Math.round(1.88*coeff)/coeff);
System.out.println(Math.round(1.99*coeff)/coeff);
}
}
输出:
1.0
1.25
1.25
1.5
1.5
1.75
1.75
1.75
2.0
2.0
答案 1 :(得分:5)
(Math.round(num/toNearest))*toNearest;
将数字四舍五入为toNearest
答案 2 :(得分:1)
从数学角度讲,你可以将你的浮点数乘以.25,然后再将其除以.25。
编辑:对不起,我似乎误解了你在季度的意思。但是,据我所知,这是舍入到各种小数位和度数的最简单方法。