Heim >Backend-Entwicklung >C++ >Warum gibt mein Programm „Fahrenheit in Celsius C' 0 aus und wie kann ich das Problem beheben?
Umrechnungen von Fahrenheit in Celsius: Grundlegende Gleichungsmodifikation
In diesem C-Programm ist unser Ziel die Umrechnung von Fahrenheit in Celsius. Allerdings erzeugt der Code derzeit eine unerwartete Ausgabe von 0. Lassen Sie uns den Grund für dieses Problem untersuchen.
Die problematische Zeile im Code lautet:
fahrenheit = (5/9) * (celsius + 32);
Das Problem entsteht durch die Divisionsoperation (5/9). In C wird standardmäßig eine Ganzzahldivision durchgeführt, was bedeutet, dass das Ergebnis auf eine Ganzzahl gekürzt wird. Dies führt effektiv dazu, dass die Division 0 ergibt, obwohl wir beabsichtigen, dass es sich um einen Gleitkommawert handelt.
Um dies zu korrigieren, müssen wir die Division so ändern, dass sie Gleitkommaarithmetik verwendet. Wir können dies tun, indem wir einen der Operanden wie folgt in einen Gleitkommawert umwandeln:
fahrenheit = (5.0/9) * (celsius + 32);
Indem wir 5 in einen Gleitkommawert (5.0) umwandeln, erzwingen wir, dass die gesamte Division im Gleitkommamodus ausgeführt wird. Daraus ergibt sich die korrekte Umrechnungsformel.
Mit dieser Änderung berechnet das Programm nun die Umrechnung von Fahrenheit in Celsius korrekt und liefert genaue Ergebnisse, wenn eine Celsius-Temperatur eingegeben wird.
Das obige ist der detaillierte Inhalt vonWarum gibt mein Programm „Fahrenheit in Celsius C' 0 aus und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!