Falsche Umrechnung von Celsius in Fahrenheit
In C erfordert die Umrechnung von Celsius in Fahrenheit mithilfe der Gleitkomma-Arithmetik besondere Aufmerksamkeit. Betrachten Sie den folgenden Code:
<code class="cpp">#include <iostream> using namespace std; int main() { float celsius; float fahrenheit; cout << "Enter Celsius temperature: "; cin >> celsius; fahrenheit = (5/9) * (celsius + 32); cout << "Fahrenheit = " << fahrenheit << endl; return 0; }</code>
Warum gibt dieses Programm für jede Celsius-Eingabe 0 aus?
Das Problem liegt in der ganzzahligen Division von (5/9). Standardmäßig führt C eine Ganzzahldivision durch, die in diesem Fall 0 ergibt. Um dieses Problem zu lösen, müssen wir einen der Operanden in einen Gleitkommatyp umwandeln, um eine Gleitkommadivision zu erzwingen. Der korrigierte Code unten:
<code class="cpp">#include <iostream> using namespace std; int main() { float celsius; float fahrenheit; cout << "Enter Celsius temperature: "; cin >> celsius; fahrenheit = (5.0/9) * (celsius + 32); cout << "Fahrenheit = " << fahrenheit << endl; return 0; }</code>
Das obige ist der detaillierte Inhalt vonWarum gibt meine Umrechnung von C Celsius in Fahrenheit immer 0 aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!