La suma de flotación no es exacta [cerrada]

Considere el siguiente programa de C ++:

#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;
}

Compile y ejecute este programa y luego responda las siguientes preguntas: ¿En qué se diferencia el comportamiento real de este programa de su comportamiento esperado?

¿Por qué no se ve el comportamiento esperado?

Mientras se asegura de que la semántica del programa permanezca igual, ¿qué cambios haría en este programa para garantizar que el comportamiento esperado y el real coinciden?

Lo anterior es mi cometido. Sé que debo hacer mi propia tarea pero estoy atascado.

Para la parte a) simplemente dije que los 2 números son diferentes.

Para la parte c) hice el flotador en un doble. (Creo que la semántica se mantiene igual).

Para la parte b) Sé que esto se llama cancelación catastrófica, pero el profesor probablemente quiera ver más que eso y no tengo idea de qué más decir. ¿Alguien me puede ayudar?

Gracias por tu ayuda

Respuestas a la pregunta(2)

Su respuesta a la pregunta