为什么我的温度转换计算不正确?

时间:2016-04-21 19:19:59

标签: java

我正在尝试将华氏温度转换为摄氏温度。当我调用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());
      }

    }

1 个答案:

答案 0 :(得分:2)

59int文字,因此除以它们将使用integer division完成 - 也就是说,它只需要整个部分。由于5小于9,这将导致0,因此整个乘法也是如此。

相反,您应该使用double文字:

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