Wenn ich Code in C++ schreiben:C++ Doppel zu lange lange
long long d = 999999998.9999999994;
cout<<d;
I Ausgabe: 999999999
(Aufrundung)
Aber Ausgabe dieses Codes:
long long d = 999999998.9999994994;
cout<<d;
ist 999999998
(Abrunden)
Hat es etwas mit Präzision zu tun. Gibt es eine Möglichkeit, die Präzision zu ändern? floor()
Funktion gibt auch die gleiche Ausgabe.
Ich bemerkte auch, dass, wenn ich Wert 8.9999994994
oder 8.9999999994
zu d
zuweisen (oben Variable). Ausgabe ist 8
.
Sie können explizit 0,5 hinzufügen und doppelt zu lange long. –
C++ 11 Unterstützung? Benutzerdefinierte Literale könnten helfen. – Yakk
@OleksandrVerhun Sie können dies tun, aber wenn es Ihr Ziel ist, die Fließkommazahl auf die nächste ganze Zahl zu runden, sollten Sie dies nicht tun. http://blog.frama-c.com/index.php?post/2013/05/02/nearestintf1 –