2016-04-21 130 views
0

我想把我的華氏溫度,並將其轉換爲攝氏溫度。當我打電話給toCelsius()方法時,它會將溫度計算爲0攝氏度。爲什麼我的溫度轉換不能正確計算?

這裏是我的轉換方法

public Temperature toCelsius() 
    { 
    Temperature answer = new Temperature(); 
    switch(tempType) 
    { 
    case 'C': 
     answer = new Temperature(this.temp,'C'); 
     return answer; 
    case 'F': 
     answer = new Temperature(((this.temp-32)*(5/9)),'C'); 
     return answer; 

    case 'K': 
     answer = new Temperature((this.temp-241.15),'C'); 
     return answer; 

    default: 
     System.out.println("ERROR!"); 
     break; 

    } 
    return answer; 
    } 

這裏是我的演示

public class TempDemo { 

     public static void main(String[] args) { 

      Temperature temp1 = new Temperature(122, 'F'); 
      System.out.println(temp1.toCelsius()); 
     } 

    } 
+4

司整數不會產生一個十進制數,我認爲。 '5/9'等於'0'。我認爲你必須使用'double'。 – Gendarme

回答

2

59int文字,因此,將其劃分將做使用integer division - 也就是說,它只會在需要整個部門的一部分。由於5小於9,這將導致0,因此整個乘法也是如此。

相反,你應該使用double文字:

answer = new Temperature(((this.temp-32)*(5.0/9.0)), 'C'); 
+0

如果你想保留一個'int'值,你可以做'(this.temp - 32)* 5/9'並且得到一個很好的答案。 +1 –

相關問題