java中的舍入值

时间:2013-03-26 03:42:12

标签: java rounding

我将如何围绕

  1. 1<价值< 1.5至1.5

  2. 1.5<价值< 2至2

5 个答案:

答案 0 :(得分:8)

怎么样

double rounded = Math.ceil(number * 2) / 2;

由于Math.ceil()已经返回了一个双精度数,因此此处无需除以2.0d。只要你处于可以表示为双精度且不会丢失精度的整数范围内,这将正常工作,但要注意你是否超出了该范围。

答案 1 :(得分:2)

public double foo(double x){
  int res = Math.round(x);
  if(res>x) // x > .5
   return res -0.5;
  else 
   return res + 0.5;
}

我还没有编译过这个,但这是伪代码,应该可以正常工作

答案 2 :(得分:1)

乘以2,使用Math.ceil(),然后将结果除以2.

答案 3 :(得分:1)

    public double round(double num)
    {
        double rounded = (int) (num + 0.4999f);
        if(num > rounded)
            return rounded + 0.5;
        else
            return rounded;
    }

答案 4 :(得分:-2)

您可以使用

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