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的部分。我尝试了公式的替代格式,但似乎没有任何效果。
感谢您的协助,我尝试为该问题寻找解决方案,但到目前为止,似乎没有任何效果。
要解决此问题,请将其中的1个强制转换为浮动类型,例如:
还有
(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