Ich hatte ein seltsames Verhalten mit meinem Programm, in dem der Doppelgänger die Präzision verlor. Meine Couts zeigten korrekte Werte, aber das Verhalten war immer noch unerwartet. Daher habe ich debuggt und festgestellt, dass sogar gdb unerwartete Werte zeigt. Im Folgenden nur die vereinfachte Szenario:gdb zeigt falschen doppelten Wert
double length =2.11;
//gdb shows 2.10 here but prints 2.11 correctly using cout at the end
cout<<"length; //It prints 2.11 correctly here
Oft sind solche Fragen sind schwer auf Produktionsszenarien zu finden, wo das Debuggen nicht möglich ist und die einzige Option ist mit so viele Abzüge wie möglich. Irgendwelche Vorschläge, wie kann ich dieses Problem vermeiden?
Falsche Frage (weil Sie vergessen haben, es zu motivieren, und tatsächlich ein [XY Problem] (http://xyproblem.info) haben ...). Wie Sie kommentiert haben, manipulieren Sie * Zahlen * nicht, aber eine Darstellung in barocker Länge (da Sie gesagt haben, '2.11' würde 2 Fuß und 11 Zoll bedeuten) –
Wenn Sie' double' verwenden, sollten Sie mehrere Stunden brauchen, um http zu lesen: //floating-point-gui.de/ –
@BasileStarynkevitch: Absolut guter Rat. Bewaffnet mit diesem Wissen gehen Sie auch auf Parties. – Bathsheba