第20行出错:必填' Int'找到Double

时间:2018-02-28 21:08:50

标签: java

我遇到第20行的问题,我希望有人可以指出我正确的方向,我做错了什么。我试图做的就是显示摄氏温度以及各自的华氏温度。摄氏度从0到100增加到华氏度从32 - 212增加。这远远没有完成,我意识到它仍然是一团糟。我已经将数据显示出来,但是它在一列中,而不是它应该存在的两列。

感谢您对此的想法和意见。

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package celsiustofarenheittable;

/**
 *
 * @author these
 */
public class CelsiusToFarenheitTable {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) 
    {
        double celsiusToFarenheit,farenheit,celsius = 0;
        celsiusToFarenheit = celsiusToFarenheit(farenheit,celsius);     // HERE!
        System.out.printf("Celsius \t Farenheit \n", celsius,farenheit);

        {
            for (celsius = 0; celsius <= 100; celsius += 10)
            {
                if (celsius <= 100 )
                    System.out.println(celsius);
            }

                while (farenheit <= 100){ 
                        System.out.println(farenheit * 1.8 + 32);
                        farenheit = farenheit + 10;
            }
            }     
      }    
    public static double celsiusToFarenheit(int celsius)
    {
        double farenheit;
        farenheit = math.round(celsius * 1.8 + 32);
        return farenheit;
    }
}

3 个答案:

答案 0 :(得分:2)

你真的很接近,从摄氏度到华氏度的实际转换是正确的。

所以你的问题是你将两个doublesfarenheitcelsius传递给你的方法celsiusToFarenheit(int celsius)正如你从方法声明中看到的那样,它只需{ {1}}。从这个摄氏度值开始,你正在转换为华氏度。

例如:

int celsius

这会产生50的华氏度,这是预期的

答案 1 :(得分:0)

celsiusToFarenheit方法需要一个integer参数,并且您在第20行提供了两个double参数。

我的建议是让你的摄氏变量与方法参数类型(int)匹配,并在第20行提供celsius变量:

celsiusToFarenheit(celsius)

答案 2 :(得分:0)

有许多不必要的变量和其他你不需要的东西。我修改了你的代码,让它变得尽可能简单,享受:

    public class CelsiusToFarenheitTable {

    public static void main(String[] args) 
    {
    double fahrenheit = 32.0, celsius = 0.0;
    System.out.printf("Celsius \t Farenheit \n", celsius,fahrenheit);


        for (celsius = 10; celsius <=100; celsius+=10)
        {
            System.out.print(celsius);
            System.out.print("\t");
            System.out.println(celsius * 1.8 + 32);
            fahrenheit = fahrenheit + 10;
        }
  }    

}