Kurze Frage zu Makros in C?
Servus, in der Aufgabe soll man Temperaturen umrechnen.
mein Makro:
#define CONVERTER(c)(((c) * (9 / 5)) + 32)
meine Ausgabe:
printf("%f ", CONVERTER(temp[i]));
Wie erreiche ich jetzt, dass das Ergebnis von CONVERTER richtig ausgeben wird?
Da zum Beispiel für 1 Grad, das Ergebnis 33 Fahrenheit ist, da hier ja 9/5 = 1, ich will aber ja die Kommazahl (float) von 9/5.
Gruß
habs jetzt einfach mit 1,8 statt 9/5 gemacht, damit gehts.
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Technik, programmieren, Technologie
- musst du denn mit Makros arbeiten? Mach es doch mit Funktionen
- Du nutzt eine Integer-Division, die dir eben wieder einen Integer gibt. Um eine Gleitkommadivision durchzuführen, muss entweder Zähler oder Nenner eine Gleitkommazahl sein
printf("%d\n", 9/5);
printf("%f\n", 9/5.f);
Ausgabe:
1
1.800000
Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)
xxxcyberxxx
14.12.2021, 16:20
@frage2345707
hab jetzt einfach 1.8 statt 9/5 geschrieben, dann gehts :)
jo, ist ja auch eine Gleitkommazahl (müsste ein Double sein, da du nicht "f" dahinter geschrieben hast)
Man muss mit einem Makro arbeiten, hab jetzt einfach 1.8 statt 9/5 geschrieben, dann gehts :)