我不知道为什么,但如果我将参数从小数改为分数,我会得到两个不同的结果。
这些方法将返回确切的值。如果它是小数,我试图将数字四舍五入,例如:
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));
输出:1
System.out.println(myRound(1.4);
输出:2
答案 0 :(得分:5)
首先,转换转到Integer,其中(14/10)为1,然后将其转换为1. 1.4是双倍,所以它将它作为双数字。
答案 1 :(得分:3)
14/10
为1
,因为14
和10
都是int
,因此结果为{ {1}}。
您列出的输出与您的代码不符(尤其是因为您显示的代码从未调用int
),但我怀疑这将是您实际上的任何解释看到。