Zusätzlich einige OPs middle-of-the-post Anliegen @xanatos feine Antwort, betrachtet:
Ich frage mich, ob es bestimmte Situationen, in denen die (Rundung) Fehler nicht
Kandidaten gelten umfassen some_double_y = some_double_x * 1.0
und some_double_y = some_double_x + 0.0
können niemals einen Rundungsfehler verursachen.
Doch selbst diejenigen sind verdächtig aufgrund eines Compilers kann double
mit höherer Genauigkeit unter Berücksichtigung der FLT_EVAL_METHOD == 2
bewerten, wo „alle Operationen und Konstanten auf den Bereich und die Genauigkeit der long double
Art bewerten.“ In diesem Fall kann ein Zwischenprodukt some_double_x
als long double
vorliegen, das sich von einem scheinbaren double
-Wert von 0.0
oder 1.0
unterscheidet.
Abgesehen von speziellen Werten wie NaN, Infinity oder -Infinity, ist es richtig anzunehmen, dass jede normale Zahl multipliziert mit genauem Null genau Null ergibt. –