Сейчас я работаю над довольно простой программой. Что он делает, так это конвертирует градусы Фаренгейта или Цельсия в кельвины, а затем, в зависимости от того, что запрашивает пользователь (f или c), это значение кельвина преобразуется и возвращается либо в градусы Цельсия, либо в градусы Фаренгейта.
Мое преобразование по Цельсию, кажется, работает просто отлично, но по Фаренгейту это совсем другая история. Наш профессор говорит, что наш вывод должен соответствовать данному примеру на 100%, и когда я задаю значение в градусах Цельсия и запрашиваю градусы Цельсия обратно, он всегда возвращает значение, которое я изначально ввел.
Однако при преобразовании 95 градусов по Цельсию в градусы по Фаренгейту я получил следующее: 203.28800000000007 Значение, которое я должен был получить, было: 203,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;
}
}
Спасибо за любую помощь, я пытался найти решение этой проблемы, но пока ничего не работает.