У меня есть две функции как часть большей функции, которую я пишу как упражнение. Целью этих функций является преобразование температур от Фаренгейта до Цельсия и наоборот.двойная функция только возврат -0
Я начинаю с:
#include <iostream>
using namespace std;
double Celsius_to_Fahrenheit(double);
double Fahrenheit_to_Celsius(double);
Цельсия, к-Fahrenheit работает отлично:
double Celsius_to_Fahrenheit(double C){
double F = ((9/5)*C + 32);
return F;
}
Но функция Фаренгейта к Цельсию возвращает -0
независимо от того, какой аргумент он принимает:
double Fahrenheit_to_Celsius(double F){
double C = ((5/9)*(F - 32));
return C;
}
Что случилось со вторым? Я не вижу разницы в структуре, которая заставит работать, а не другую.
Редактировать: Я только проверял функции на 0
, обе функции ломаются для нетривиальных аргументов! Это еще хуже!
Добро пожаловать в мир целочисленного деления. Попробуйте 'double C = ((5.0/9.0) * (F - 32.0));'. – Phylogenesis
Функция Celsius-to-Fahrenheit также не работает. – user2357112
@ user2357112 Я тестировал его только на ноль! Дурак я! – GFauxPas