Reputation: 8498
How will I round
1 < value < 1.5 to 1.5
1.5 < value < 2 to 2
Upvotes: 2
Views: 2178
Reputation: 1721
public double round(double num)
{
double rounded = (int) (num + 0.4999f);
if(num > rounded)
return rounded + 0.5;
else
return rounded;
}
Upvotes: 1
Reputation: 36930
How about
double rounded = Math.ceil(number * 2) / 2;
Since Math.ceil()
already returns a double, no need to divide by 2.0d
here. This will work fine as long as you're in the range of integers that can be expressed as doubles without losing precision, but beware if you fall out of that range.
Upvotes: 8
Reputation: 5912
public double foo(double x){
int res = Math.round(x);
if(res>x) // x > .5
return res -0.5;
else
return res + 0.5;
}
I havent compiled this but this is pseudocode and should work
Upvotes: 2