Die Summe der Schwimmer ist nicht genau [geschlossen]

Betrachten Sie das folgende C ++ - Programm:

#include <iostream>
using std::cout;
using std::endl;

int main () {
   float x = 0.0001;
   float y = 0;
   for (int i=0; i < 10000; i++) {
      y += x;
   }
   cout << y << endl;
   return 0;
}

Kompilieren Sie dieses Programm, führen Sie es aus, und beantworten Sie die folgenden Fragen: Inwiefern unterscheidet sich das tatsächliche Verhalten dieses Programms von dem erwarteten Verhalten?

Warum wird das erwartete Verhalten nicht gesehen?

Welche Änderungen würden Sie an diesem Programm vornehmen, um sicherzustellen, dass das erwartete und das tatsächliche Verhalten übereinstimmen, während sichergestellt wird, dass die Programmsemantik gleich bleibt?

Das Obige ist meine Aufgabe. Ich weiß, dass ich meine Hausaufgaben machen soll, aber ich stecke fest.

Für Teil a) habe ich einfach gesagt, dass die 2 Zahlen unterschiedlich sind.

Für Teil c) habe ich aus dem Float ein Double gemacht. (Ich denke die Semantik bleibt gleich)

Zum Teil b) Ich weiß, dass dies als katastrophale Aufhebung bezeichnet wird, aber der Professor möchte wahrscheinlich mehr als das sehen und ich habe keine Ahnung, was ich sonst noch sagen soll. Kann mir jemand helfen?

Danke für Ihre Hilfe

Antworten auf die Frage(2)

Ihre Antwort auf die Frage