现在我试着这样做:
int a = round(n);其中n是一个double,但它不工作。我做错了什么?
发布于 2010-04-17 01:13:13
代码片段中round()方法的返回类型是什么?
如果这是Math.round()方法,当输入参数为双精度时,它将返回一个Long。
因此,您必须强制转换返回值:
int a = (int) Math.round(doubleVar);发布于 2015-01-15 19:25:59
如果你不喜欢Math.round(),你也可以使用这个简单的方法:
int a = (int) (doubleVar + 0.5);发布于 2012-09-05 20:46:30
将double舍入为“最接近”的整数,如下所示:
1.4 -> 1
1.6 -> 2
-2.1 -> -2
-1.3 -> -1
-1.5 -> -2
private int round(double d){
double dAbs = Math.abs(d);
int i = (int) dAbs;
double result = dAbs - (double) i;
if(result<0.5){
return d<0 ? -i : i;
}else{
return d<0 ? -(i+1) : i+1;
}
}您可以根据自己的喜好更改条件(result<0.5)。
https://stackoverflow.com/questions/2654839
复制相似问题