您好我应该将我的浮点值向上舍入到连续的.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
答案 0 :(得分:4)
您应该使用Math.ceil()
代替Math.round():
Math.ceil(myFloat*4) / 4.0d;
答案 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;
}