0
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;
}

使用这个程序,我试图将华氏温度转换为摄氏温度,当我在运行程序时调用方法摄氏度到我的主程序时,摄氏温度的最终结果总是-无穷大。我究竟做错了什么?

4

2 回答 2

4

你正在做 int 除法,它总是返回一个 int。例如5/9返回 0。

而是使用双除法5.0/9.0

对于您的代码:

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

我们可能应该将这个问题作为重复问题关闭,因为它已经被问过很多次了。例如:华氏到摄氏-转换-产量-仅-0-0-and-0-0

于 2013-10-30T17:51:04.267 回答
2

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

它应该是:(5.0/9.0)

于 2013-10-30T17:51:39.080 回答