我将如何围绕
1<价值< 1.5至1.5
1.5<价值< 2至2
答案 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);