如何将浮球舍入到最近的四分之一

时间:2011-03-24 12:31:24

标签: java math rounding

有时我需要将浮球绕到最近的四分之一,有时候到最近的一半。

对于我使用的一半

Math.round(myFloat*2)/2f 

我可以用

Math.round(myFloat*4)/4f

但还有其他建议吗?

3 个答案:

答案 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。

编辑:对不起,我似乎误解了你在季度的意思。但是,据我所知,这是舍入到各种小数位和度数的最简单方法。