nr.iras.sk
nr.iras.sk

Reputation: 8498

Round values in java

How will I round

  1. 1 < value < 1.5 to 1.5

  2. 1.5 < value < 2 to 2

Upvotes: 2

Views: 2178

Answers (5)

Anthony Raimondo
Anthony Raimondo

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

Gigatron
Gigatron

Reputation: 2055

Multiply by 2, use Math.ceil(), then divide that result by 2.

Upvotes: 1

Lynx777
Lynx777

Reputation: 342

You can use

double numberGrade = 2.5;
Math.ceil(numberGrade);

Upvotes: -2

Andrew Mao
Andrew Mao

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

smk
smk

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

Related Questions