Reputation: 287
I'm running into following issue...
Does an already 'built-in' function exists in java to round given random numbers to the closest lower quarter value.
These are the given random numbers:
2.00 -> 2.00
2.24 -> 2.00
2.25 -> 2.25
2.49 -> 2.25
2.50 -> 2.50
2.74 -> 2.50
2.75 -> 2.75
2.99 -> 2.75
3.00 -> 3.00
Upvotes: 1
Views: 1476
Reputation: 1234
Try this:
double value = 2.99D;
value = (double)(int)(value * 4) / 4;
Upvotes: 0
Reputation: 31612
You can multiply the value by 4 then floor it then divide by 4.
public static double quarterRound(double v){
return Math.floor(v*4)/4;
}
Upvotes: 7
Reputation: 26926
You need to round to quarters so:
Note that if you reliable values it is better to works with BigDecimal instead of primitive values (double
or float
). The algorithm stay the same.
Upvotes: 3