我正在尝试将华氏温度转换为摄氏温度。当我调用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());
}
}
答案 0 :(得分:2)
5
和9
是int
文字,因此除以它们将使用integer division完成 - 也就是说,它只需要整个部分。由于5小于9,这将导致0
,因此整个乘法也是如此。
相反,您应该使用double
文字:
answer = new Temperature(((this.temp-32)*(5.0/9.0)), 'C');