Ich versuche, die Zahl 684.545007
mit 2 Punkten Genauigkeit in dem Sinne zu drucken, dass die Zahl abgeschnitten (nicht gerundet) wird nach 684.54
.
Wenn ich
benutze %Vor% es gibt 684.55
aus, aber was ich gerne hätte, ist 684.54
.
Weiß jemand, wie ich das korrigieren kann?
Was Sie suchen, ist trunkation . Dies sollte funktionieren (zumindest für Zahlen, die nicht besonders groß sind):
%Vor%Die Konvertierung in Ganzzahl schneidet den Bruchteil ab.
In C ++ 11 oder C99 können Sie die dedizierte Funktion trunc
verwenden zu diesem Zweck (aus dem Header <cmath>
oder <math.h>
. Dies vermeidet die Beschränkung auf Werte, die in einen ganzzahligen Typ passen.
Hier ist mein Ansatz. Es scheint hässlich, funktioniert aber in den meisten Fällen z.B. var kann größer als int sein, kann null oder bizarr "-0" sein. Es geht jedoch nicht mit Unendlichkeiten und NaNs.
%Vor%