向上浮动.25

时间:2016-10-21 06:59:18

标签: android rounding

您好我应该将我的浮点值向上舍入到连续的.25值。 例如:

0.123 =>  0.25
0.27 => 0.5
0.23 => 0.25
0.78 => 1
0.73 => 0.75
10.20 => 10.25
10.28 => 10.5

我尝试使用Math.round(myFloat*4)/4f;,但它返回最近的,所以如果我有:

1.1 return 1 and not 1.25

3 个答案:

答案 0 :(得分:4)

您应该使用Math.ceil()代替Math.round():

Math.ceil(myFloat*4) / 4.0d;

密切相关:Java - rounding by quarter intervals

答案 1 :(得分:2)

你几乎拥有它。要进行整理,请使用Math.ceil(myFloat*4)/4f代替Math.round

答案 2 :(得分:0)

您需要实现自己的舍入逻辑。

public static double roundOffValue(double value) {
    double d = (double) Math.round(value * 10) / 10;
    double iPart = (long) d;
    double fPart = value - iPart;
    if (value == 0.0) {
        return 0;
    }else if(fPart == 0.0){
        return iPart;
    }else if (fPart <= 0.25) {
        iPart = iPart + 0.25;
    } else if (fPart <= 0.5) {
        iPart = iPart + 0.5;
    } else if (fPart < 0.75) {
        iPart = iPart + 0.75;
    } else {
        iPart = iPart + 1;
    }
    return iPart;
}