我不知道爲什麼,但我得到兩個不同的結果,如果我將參數從小數改爲小數。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