Java 为什么';我的温度换算计算不正确吗?
我试着用华氏温度来测量我的体温,然后把它转换成摄氏度。当我调用toCelsius()方法时,它会将温度计算到0摄氏度 这是我的换算方法Java 为什么';我的温度换算计算不正确吗?,java,Java,我试着用华氏温度来测量我的体温,然后把它转换成摄氏度。当我调用toCelsius()方法时,它会将温度计算到0摄氏度 这是我的换算方法 public Temperature toCelsius() { Temperature answer = new Temperature(); switch(tempType) { case 'C': answer = new Temperature(this.temp,'C');
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());
}
}
5
和9
都是int
文本,因此将使用-来对它们进行分割,也就是说,只需要整个分割的一部分。由于5小于9,这将导致0
,因此整个乘法也将如此
相反,您应该使用double
文本:
answer = new Temperature(((this.temp-32)*(5.0/9.0)), 'C');
5
和9
都是int
文本,因此将使用-来对它们进行分割,也就是说,只需要整个分割的一部分。由于5小于9,这将导致0
,因此整个乘法也将如此
相反,您应该使用double
文本:
answer = new Temperature(((this.temp-32)*(5.0/9.0)), 'C');
我认为用整数除法不会产生十进制数<代码>5/9等于
0
。我认为你必须使用双精度。我认为整数除法不会产生十进制数<代码>5/9等于0
。我认为您必须使用double
。如果您想将其保持为int
值,您可以执行(this.temp-32)*5/9
,并获得接近的答案+1如果您想将其保留为int
值,可以执行(this.temp-32)*5/9
并获得接近的答案+1.