Wie breitet sich ein Gleitkomma-Fehler aus, wenn mathematische Operationen in C ++ ausgeführt werden?

Nehmen wir an, wir haben die folgenden Variablen deklariert

float a = 1.2291;

float b = 3.99;

float -Variablen haben die Genauigkeit 6, was (wenn ich das richtig verstehe) bedeutet, dass die Differenz zwischen der Zahl, die der Computer tatsächlich speichert, und der tatsächlichen Zahl, die Sie möchten, kleiner als @ is10^-6

das bedeutet, dass beidea undb habe einen Fehler, der kleiner als @ i10^-6

so im Computera könnte eigentlich @ se1.229100000012123 undb könnte sein3.9900000191919

Jetzt nehmen wir an, Sie haben den folgenden Code

float c = 0;
for(int i = 0; i < 1000; i++)
      c += a + b;

meine Frage ist

werdencas Endergebnis von @ hat einen Genauigkeitsfehler von weniger als10^-6 auch oder nicht?

und wenn die Antwort negativ ist, wie können wir diesen Präzisionsfehler tatsächlich erkennen und was genau passiert, wenn Sie Operationen beliebig oft und in beliebiger Reihenfolge ausführen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage