C Programm zum Konvertieren von Fahrenheit in Celsius

7

Ich schreibe ein Programm für eine Klasse, in der ich bin, und brauche Hilfe mit einem Programm zum Umwandeln von Fahrenheit in Celsius in C. Mein Code sieht so aus:

%Vor%

Jedes Mal wenn ich es ausführe ist das Ergebnis 0.000000. Ich weiß, dass ich etwas vermisse, aber nicht herausfinden kann, was.

    
James 03.02.2011, 19:02
quelle

8 Antworten

21

5/9 ergibt eine ganzzahlige Division, die = 0

ist

Versuchen Sie stattdessen 5.0/9.0 .

    
nybbler 03.02.2011, 19:04
quelle
8

Ihr Problem ist hier:

%Vor%

5/9 gibt dir immer 0 . Verwenden Sie stattdessen ( 5.0/9.0 ).

    
Incognito 03.02.2011 19:06
quelle
2

try celsius = ((double)5/9) * (fahrenheit-32); Oder Sie können 5.0 verwenden.

Tatsache ist, dass "/" den Operandentyp betrachtet. Im Falle von int ist das Ergebnis auch ein int, also hast du 0. Wenn 5 als double behandelt wird, wird die Division korrekt ausgeführt.

    
Vladimir Ivanov 03.02.2011 19:06
quelle
0

schreibe 5/9.0 anstelle von 5/9 - das erzwingt doppelte Teilung

    
Foo Bah 03.02.2011 19:05
quelle
0

Sie müssen Fließkomma-Arithmetik verwenden, um diese Art von Formeln mit Genauigkeit auszuführen. Sie können das Endergebnis bei Bedarf jederzeit in eine Ganzzahl konvertieren.

    
Jonathan Wood 03.02.2011 19:05
quelle
0

Wenn es sich um Floats handelt, muss es 5.0f / 9.0f sein.

Beim Umgang mit Double muss es 5.0 / 9.0 sein.

Bei Ganzzahlen werden Reste / Brüche immer abgeschnitten. 5/9 Ergebnisse zwischen 0 und 1, so dass es jedes Mal auf nur 0 gekürzt wird. Das multipliziert die andere Seite mit Null und löscht Ihre Antwort jedes Mal vollständig.

    
TheBuzzSaw 03.02.2011 19:07
quelle
0

5 und 9 sind von int type
daher wird 5/9 immer zu 0 führen.

Sie können 5/9.0 oder 5.0/9 oder 5.0/9.0

verwenden

Sie können auch C-Programm zum Umwandeln von Fahrenheit in Celsius überprüfen

    
Pankaj Prakash 03.06.2015 04:52
quelle
-4
%Vor%     
paul 13.01.2012 21:06
quelle

Tags und Links