2012-11-14 32 views
1

我有這段代碼,並根據此頁here 下面的輸出應該通過權利給我,98.24但這是給我68.8,這是什麼我在這裏失蹤?在Java中運算符的優先級不適用

public class Qn1 
{ 
    public static void main(String[] args) 
    { 
     double cel = 36.8; 
     double fah = ((9/5)* cel) + 32; 
     System.out.println(cel + "deg C =" + fah +" deg F"); 
    } 
} 
+0

你是怎麼計算出來的? –

回答

10

使用9.0/5而不是9/5在支架上。

9/5是整數除法,其值是1。因此,結果。你只需要做出分子分母一個雙/浮法值執行浮點除法之一。

((9/5) * cel) + 32 = (1 * 36.8) + 32 = 68.8 

而且你需要的是: -

((9.0/5) * cel) + 32 = (1.8 * 36.8) + 32 = 66.24 + 32 = 98.24 
1
double fah = ((9.0/5)* cel) + 32; 
+0

你給這個人一條魚,而不是教他如何釣魚 –

+1

我是慈善機構=) – Juvanis

1

問題是你沒有使用doubleint。使用

double fah = ((9d/5d) * cel) + 32d; 
0

9是整數,所以是5:如此9/5使用整數除法,這意味着它的結果到1(整數),而不是1.8在整數運算(浮點)

1*36.8 +32 = 68.8 
0

5分之9是1所

1

使用的至少一個操作數double

double fah = 9.0/5 * cel + 32; 

double fah = 9/5.0 * cel + 32; 

double fah = 9.0/5.0 * cel + 32; 

這三種方法是有效的,並注意括號是不必要的。

+0

如果你已經考慮刪除不必要的括號,那麼你可以刪除所有這些。他們都不需要。 –

+0

@Rohit Jain有效! – Mik378