Bakaburg
28-02-2009, 23:05
Ciao a tutti
Per un esercizio di c ho creato un convertitore di temperature da fahrenait a celsius e viceversa; ecco le funzioni:
float celsToFah(float cels)
{
return 9 / 5 * cels + 32;
}
float fahToCels(float fah)
{
return 5 / 9 * (fah - 32);
}
Ma mi sono accorto che non funzionava: nel primo caso mi dava semplicemente il risultato di cels + 32, nel secondo 0. Ho capito che il problema erano le costanti: il rapporto 9 / 5 viene approssimato ad uno ed il rapporto 5 / 9 a 0.
Il problema è facilmente reversibile (basta spostare la parte frazionale dopo la variabile.
Ma è normale che non si possa effettuare divisioni fra interi? e se voglio definire numeri reali (es. pigreco) come faccio?
Per un esercizio di c ho creato un convertitore di temperature da fahrenait a celsius e viceversa; ecco le funzioni:
float celsToFah(float cels)
{
return 9 / 5 * cels + 32;
}
float fahToCels(float fah)
{
return 5 / 9 * (fah - 32);
}
Ma mi sono accorto che non funzionava: nel primo caso mi dava semplicemente il risultato di cels + 32, nel secondo 0. Ho capito che il problema erano le costanti: il rapporto 9 / 5 viene approssimato ad uno ed il rapporto 5 / 9 a 0.
Il problema è facilmente reversibile (basta spostare la parte frazionale dopo la variabile.
Ma è normale che non si possa effettuare divisioni fra interi? e se voglio definire numeri reali (es. pigreco) come faccio?