调用方法有问题

时间:2013-10-30 17:49:41

标签: java integer-division

public static void main (String[] args) {

   for (double f=0; f<=20;f++) {
      System.out.println(f+":Degrees Fahrenheit converted to Celsius = "+ celsius(f));
   }
}

public static double celsius (double fahrenheit) {
    double cels=(fahrenheit-32)/(5/9);
    return cels;
}

通过这个程序,我正在尝试将华氏温度转换为摄氏温度,当我在运行程序时将方法Celsius调用到我的主程序时,Celsius的最终结果始终是-infinity。我做错了什么?

2 个答案:

答案 0 :(得分:4)

你正在进行int division,它总是返回一个int。例如,5/9返回0.

而是使用双重分割5.0/9.0

代码:

public static double celsius (double fahrenheit) {
    return (fahrenheit - 32) / (5.0 / 9.0);
}

我们应该将此问题视为重复,因为它被多次询问。例如:fahrenheit-to-celsius-conversion-yields-only-0-0-and-0-0

答案 1 :(得分:2)

(5/9)是一个整数除法,它总是返回0

应该是:(5.0/9.0)