Ich mag würde verstehen, warumboost :: Format gibt unterschiedliche Ergebnisse als rund
double nbr = 102262.5;
boost::format("%.0f") % nbr;
gibt 102262
während round(102262.5)
gibt 102263.0
Wenn wir ein anderes Beispiel Wert nehmen 34087.5
boost::format("%.0f") % nbr
gibt 34088
und round(34087.5)
ergibt das gleiche 34088
Bedeutet es, dass round einen ausgefeilteren Algorithmus implementiert, um die nächste Ausgabe sicherzustellen, während das Format oder printf nicht funktioniert?
Was bekommen Sie mit 'round (nbr)'? Anders ist nicht das Gleiche. –
Ich bekomme das gleiche Ergebnis mit Runde (nbr) wie bei der Verwendung des Literalwertes. – Bing
beziehen Sie sich auf 'std :: round' oder' boost :: round'? Jedenfalls benutzen beide die gleiche Rundung, was es noch überraschender macht, dass "boost :: format" anders funktioniert. – user463035818