Rundungsproblem mit doppeltem Typ [duplizieren]

Mögliches Duplizieren:
Warum liefern Operationen mit Werten mit doppelter Genauigkeit keine erwarteten Ergebnisse?

Ich habe ein besonderes Problem in C ++. Ich habe eine Variable vom Typ Double erstellt. Dann habe ich einige Berechnungen mit Werten durchgeführt, die anderen Variablen zugewiesen wurden, und das Ergebnis der von mir deklarierten doppelten Variablen zugewiesen. Es gab mir ein Ergebnis mit einem langen Dezimalteil. Ich möchte, dass es nur auf 2 Dezimalstellen gerundet wird. und speichern Sie es in der Variablen. Aber selbst nach mehreren Rundungsversuchen konnte ich es nicht auf 2 Dezimalstellen runden.

Dann habe ich einen anderen Weg versucht, um zu überprüfen, was das eigentliche Problem ist. Ich habe eine Double-Variable erstellt und ihr den Wert 1.11 zugewiesen. Als ich es jedoch durch Setzen eines Haltepunkts und Hinzufügen einer Überwachung für diese Variable debuggte, stellte ich fest, dass der jetzt in der Variablen gespeicherte Wert 1.109999999999 lautet.

Meine Frage ist, warum zeigt es so? Gibt es keine Möglichkeit, die Variable auf zwei Dezimalstellen abzurunden? Warum wird ein langer Dezimalteil angezeigt, obwohl wir eine Zahl mit nur zwei Dezimalstellen zuweisen?

Bitte schlagen Sie eine Möglichkeit vor, um Zahlen - ob berechnet oder direkt zugewiesen - unverändert in einer doppelten Variablen statt in einer Zahl mit einem langen Dezimalteil zu speichern.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage