[gelöst]Cast: Float to double
-
Hi,
ich ärgere mich über einen "relativ" simplen Cast von einem float Wert zu einem double Wert rum. Mir geht es nicht um die letzte Kommastelle, aber wenn ich mit einem ganz normalen (double) Befehl meinen float Wert caste kommt nur Müll raus.
Könntet ihr mir da weiterhelfen, ich bin leider auf C angewiesen.
THX
-
Gib doch mal bitte ein Beispiel. Kann es sein, dass lediglich die Ausgabe falsch ist?
-
Ich hab' keine Ahnung wo dein Problem liegt:
#include <stdio.h> int main( ) { float f = 12.3456; double d = (double) f; printf( "%f == %lf\n", f, d ); }
Ausgabe:
12.345600 == 12.345600
Greetz, Swordfish
-
printf( "%f == %lf\n", f, d );
Warum %lf ?
-
Danke, klappt jetzt.
Ich habe es vorher genau so gemacht, aber erst jetzt funktioniert es. Man man, ich weiß auch nicht was da los war.
-
Hi,
na der Teufel steckt ja wieder im Detail. Also der Cast funktioniert leider nicht wie erhofft. Die Werte in der double Variable sind nicht richtig. Da deine Ausgabe der Werte im float Format getätigt worden ist.
Wenn ich dagegen die Sache mit %d ausgeben möchte, sehe ich den Schlamassel.
Wird bei dem jetzigen CAst nur eine Referenz übergeben oder wirklich das Format geändert?Danke
-
Wenn ich dagegen die Sache mit %d ausgeben möchte, sehe ich den Schlamassel.
%d ist gleichbedeutend mit %i, was wiederum für ganzzahlen benötigt wird. Kein Wunder, dass die Ausgabe bekloppt ist, wenn du eine Gleitkommazahl als Ganzzahl ausgeben willst.
MfG
GPC
-
Okay, war mir nicht bewusst, dass %d gleichzusetzen ist mit %i .