我不知道为什么,但我得到两个不同的结果,如果我将参数从小数改为小数。Java奇怪的细胞转换
这些方法将返回确切的值。我试图向上舍入的数字。如果它是一个小数,例如:
0.0 - > 0
0.1 - > 1
0.4 - > 1
0.5 - > 1
0.6 - > 1
1.0 - > 1
1.1 - > 2
// accepts Double
private void myRound(Double d){
int res = (int)Math.ceil(d);
return (res <= 0 ? 1 : res);
}
// acepts int
private void myRound(int i){
int res = (int)Math.ceil(i);
return (res <= 0 ? 1 : res);
}
实施例:
System.out.println(myRound(14/10));
OUTPUT:1
System.out.println(myRound(1.4);
OUTPUT:2
您输出的示例与您的示例代码不匹配(并非最不重要的原因是您永远不会调用myRound)。 – 2013-02-12 15:07:05
您可以用'Math.max(i,1)'替换int的版本,因为int的上限是int本身。 – 2013-02-12 15:10:22
我想你的代码实际上是这样的:System.out.println(myRound(1.4));不是吗? – 2013-02-12 15:10:34