当前位置: 首页 > 知识库问答 >
问题:

类方法没有执行正确的计算

赵健柏
2023-03-14

目前我正在为学校做一个项目,下面是要求:

编写一个Temperature类,它将保持以华氏为单位的温度,并提供获取以华氏、摄氏度和开尔文为单位的温度的方法。该类应具有以下字段:

  • ftemp:保持华氏温度的倍增器。

该类应具有以下方法

  • 构造函数:构造函数接受华氏温度(双倍)并将其存储在ftemp字段中。
  • setFahrenheit:set Fahrenheit方法接受一个华氏温度(作为双值),并将其存储在ftemp字段中。
  • GetFahrenheit:返回ftemp字段的值作为华氏温度(不需要转换)
  • getcelsius:返回转换为摄氏度的ftemp字段的值。使用以下公式转换为摄氏度:摄氏度=(5/9)*(华氏-32)
  • getKelvin:返回转换为Kelvin的ftemp字段的值。使用以下公式转换为开尔文:开尔文=((5/9)*(华氏-32))+273

通过编写一个向用户询问华氏温度的单独程序来演示Temperature类。程序应该创建Temperature类的实例,将用户输入的值传递给构造函数。然后,程序应该调用对象的方法以以下格式显示温度(例如,如果以华氏为单位的温度是-40):

  • 华氏温度为-40.0
  • 摄氏温度为-40.0
  • 开尔文温度为233.0

下面是我当前的代码:

public class Temperature {

    private double ftemp;

    public Temperature(double temp)
    {
        ftemp = temp;
    }

    public void setFahrenheit(double t)
    {
        ftemp = t;
    }

    public double getFahrenheit()
    {
        return ftemp;
    }

    public double getCelsius()
    {
        return (5/9) * (ftemp - 32);
    }

    public double getKelvin()
    {
         return ((5/9) * (ftemp - 32)) + 273;

    }

}
import java.util.Scanner;

public class MPL1 {

    public static void main(String[] args)
    {

        double input;
        Scanner keyboard = new Scanner(System.in);

        System.out.print("Enter a Fahrenheit temperature: ");

        input = keyboard.nextDouble();

        Temperature myTemp = new Temperature(input);


        System.out.println("The temperature in Fahrenheit is " + 
                    myTemp.getFahrenheit());
        System.out.println("The temperature in Celsius is " +
                    myTemp.getCelsius());
        System.out.println("The temperature in Kelvin is " +
                            myTemp.getKelvin());

    }
}

共有1个答案

哈襦宗
2023-03-14

5/9是整数除法,由于9除以5个零倍,5/9=0。将其转换为双倍:((double)5/9)

 类似资料:
  • 问题内容: 我想知道退出程序之前等待go例程完成的正确方法是什么。阅读其他答案,看来bool chan可以解决问题,就像在Playground链接中一样 我在这里有两个问题: 为什么<-完成的作品完全可以? 如果我取消最后一行的注释会怎样?我有一个死锁错误。这是因为通道为空,并且没有其他函数向其发送值吗? 问题答案: 为何一切正常? 之所以有效,是因为运行时检测到您正在向其他地方的通道写入内容。

  • 我的目标是创建一个抽象类,它的静态方法必须被实现,但是由于静态方法不能被抽象,我有一些问题。 这就是我提出的解决方案: 我写这篇文章是因为我找不到任何等价的答案,这让我想知道这在Java中是否是惯用的。

  • 问题内容: 我正在获取一个exe文件,必须在Windows Server 2008 R2上使用Java(版本6)执行该文件。现在有一个我不太了解的问题。使用命令行执行文件时 它可以正常工作,但是当我执行文件时 我可以在Windows任务管理器中看到test.exe,它开始运行(它会创建一个记录该状态的日志),但随后它不再执行任何操作。test.exe用0%无休止地运行,我必须手动终止该进程。这样做

  • 给定一个类Foo 为什么我用Spock来嘲笑Foo 调用总是返回false? 不确定这是否有区别,但测试是在Groovy/Spock中进行的,而Foo是在Java8中进行的。

  • 可能的重复: 如何测量函数的运行时间? 我有一种I/O计时方法,它将数据从一个位置复制到另一个位置。计算执行时间的最佳和最真实的方法是什么<代码>线程<代码>定时器<代码>秒表?还有其他解决方案吗?我想要最准确的,尽可能简短的。

  • 我试图在递归中总结一个数字的数字,而不是正确的数字。例如,如果输入是1234,那么输出应该是6(1+2+3)。如果输入只有1位数,那么函数应该返回0。 我不知道如何才能同时做到这一点:计算数字,从结果中删除最后一个数字,如果输入是一个数字,那么它也应该返回0。下面的代码汇总了除左位以外的所有数字。如果我尝试使用revNum函数,那么对于数字'100',结果是0而不是1。需要任何帮助请:)