This question already has answers here:
Conversion Between Fahrenheit and Celsius ISSUE
                                
                                    (2个答案)
                                
                        
                6年前关闭。
            
        

所以我目前正在开发一个非常简单的程序。它的作用是将华氏温度或摄氏温度转换为开氏温度,然后根据用户要求(f或c)转换开尔文值并将其返回为摄氏温度或华氏温度。

我的摄氏温度转换似乎效果很好,但华氏温度却是另一回事。我们的教授说,我们的输出必须与给定的示例100%匹配,当我给出一个摄氏温度值并要求摄氏温度返回时,它总是返回我最初输入的值。

但是,当我将95摄氏度转换为华氏度时,我得到了这个:203.28800000000007
我应该得到的价值是:203.0
此外,当我输入50华氏度并要求它返回华氏度时,我得到了:32.0。

我将发布包含所有转换方法的类,但是有人可以帮助我解决我可能会出错的地方吗?在我看来,基于我的公式,它只是返回公式中加/减32的部分。我尝试了公式的替代格式,但似乎没有任何效果。

public class Temperature

{

// Instance variable

   private double degreesKelvin; // degrees in Kelvin

// Constructor method: initialize degreesKelvin to zero

   public Temperature()
   {
      degreesKelvin = 0;
   }

// Convert and save degreesCelius in the Kelvin scale

   public void setCelsius(double degreesCelsius)
   {
      degreesKelvin = degreesCelsius + 273.16;
   }

// Convert degreesKelvin to Celsius and return the value

   public double getCelsius()
   {
      double c = degreesKelvin - 273.16;
      return c;
   }

// Convert and save degreesFahrenheit in the Kelvin scale

   public void setFahrenheit(double degreesFahrenheit)
   {
      degreesKelvin = (5/9 * (degreesFahrenheit - 32) + 273);
   }

// Convert degreesKelvin to Fahrenheit and return the value

   public double getFahrenheit()
   {
      double f = (((degreesKelvin - 273) * 9/5) + 32);
      return f;
   }

}


感谢您的协助,我尝试为该问题寻找解决方案,但到目前为止,似乎没有任何效果。

最佳答案

当心整数除法,2个整数的结果(除以时)会产生一个整数:

5/9 = 0
9/5 = 1


要解决此问题,请将其中的1个强制转换为浮动类型,例如:

5d/9 //or 5.0/9


还有

9d/5 //or 9.0/5

关于java - Java-开尔文到华氏度的转换方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22059486/

10-12 19:42