Kann jemand erklären, warum diese zwei Variablen mit dem gleichen Wert unterschiedliche Werte ausgeben können, wenn ich setprecision () verwende?
%Vor%Die Ausgabe für a ist 98,76, während die Ausgabe für b 98,77 ist.
Diese Variablen haben nicht denselben Wert. Wenn Sie das Literal double
von 98.765
in den Float schuhen, muss es am besten passen, und etwas Genauigkeit geht verloren.
Sie können das sehr leicht sehen, wenn Sie die Genauigkeit auf 50 ändern, Sie werden auch sehen, dass nicht einmal der doppelte genau diesen Wert darstellen kann:
%Vor% Wichtig ist jedoch, dass die vorherige Variable float
abgerundet wird und die letzte double
aufrundet.
Siehe auch den IEEE754 Online-Konverter .
Tags und Links math c++ precision floating-accuracy