Ich deklariere eine Variable double MyDouble;
.printf verdoppelt ohne nachgestellte Nullen
Wenn ich dann MyDouble = 1000.0/3.0;
und dann printf("%g", MyDouble);
gibt gibt 333,333, so dass es etwas Präzision verloren hat.
Wenn ich printf("%lf", MyDouble);
verwende, bekomme ich die Präzision.
Die untere Seite ist, wenn ich jetzt MyDouble = 5.0/2.0;
setze und printf("%lf", MyDouble);
benutze, bekomme ich 2.500000, also schleppende Nullen.
Als ein allgemeiner Fall, wie kann ich die Genauigkeit ohne die abschließenden Nullen haben. Ich könnte das Double auf eine Zeichenkette mit snprintf
und dem %lf
Format schreiben und dann ein Unterprogramm schreiben, um nachgestellte Nullen zu entfernen, aber es muss einen einfacheren Weg geben.
Link zu std :: printf Dokumentation einschließlich Formatbezeich: http://en.cppreference.com/w/cpp/io/c/fprintf –
Sie entweder wollen, dass viel Präzision oder Sie don t. –
'l' Längenmodifikator hat keine Auswirkung auf' f' Spezifizierer. – jxh