我一直在研究这个代码,一切似乎都在工作,但是当MyProgrammingLab实际运行我的代码时,它表示我的标准输出存在问题。
以下是问题:
写一个温度等级,它将保持华氏温度,并提供以华氏温度,摄氏温度和开尔文温度来获取温度的方法。这堂课应该有 以下字段:
•ftemp:持有华氏温度的双倍。
该课程应具备以下方法:
•构造函数:构造函数接受华氏温度(作为double)并将其存储在ftemp字段中。 •setFahrenheit:设置的华氏温度方法接受华氏温度(作为双精度)并将其存储在ftemp字段中。 •getFahrenheit:将ftemp字段的值返回为华氏温度(无需转换) •getCelsius:返回转换为Celsius的ftemp字段的值。使用以下公式转换为摄氏度: 摄氏度=(5/9)*(华氏度--32) •getKelvin:返回转换为开尔文的ftemp字段的值。使用以下公式转换为开尔文: 开尔文=((5/9)*(华氏温度-32))+ 273
通过编写一个要求用户输入的单独程序来演示Temperature类 华氏温度。该程序应该创建一个Temperature类的实例, 使用用户输入的值传递给构造函数。那么该计划应该 调用对象的方法以下列格式显示温度(例如, 如果华氏温度为-40℃:
华氏温度为-40.0 摄氏温度为-40.0 以开尔文为单位的温度为233.0℃
现在这是我的代码:
import java.io.*;
import java.util.Scanner;
public class Temperature
{
private double ftemp;
public Temperature(double ftemp)
{
this.ftemp = ftemp;
}
public void setFahrenheit(double ftemp)
{
this.ftemp = ftemp;
}
public double getFahrenheit()
{
return ftemp;
}
public double getCelsius()
{
return (5.0/9.0) * (ftemp - 32.0);
}
public double getKelvin()
{
return (5.0/9.0) * ((ftemp - 32.0) + 273.0);
}
}
class myTemperature
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
double input;
System.out.print("Enter a Fahrenheit temperature:");
input = keyboard.nextDouble();
Temperature temp1 = new Temperature(input);
System.out.println("The temperature in Fahrenheit is " + temp1.getFahrenheit());
System.out.println("The temperature in Celsius is " + temp1.getCelsius());
System.out.println("The temperature in Kelvin is " + temp1.getKelvin());
}
}

这些是它给我的错误:
http://imgur.com/gallery/0D2RkW7/new
我没有足够的代表发布图片,抱歉!
我真的不明白问题是什么,任何帮助都会非常感激。
答案 0 :(得分:1)
public double getKelvin()
{
return ((5.0/9.0) * (ftemp - 32.0)) + 273.0;
}
请注意()
中的更改