Сумма с плавающей точкой не является точной [закрыто]

Рассмотрим следующую программу на 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;
}

Скомпилируйте и запустите эту программу, а затем ответьте на следующие вопросы: Как реальное поведение этой программы отличается от ее ожидаемого поведения?

Почему ожидаемое поведение не видно?

Обеспечивая, чтобы семантика программы оставалась неизменной, какие изменения вы бы внесли в эту программу, чтобы обеспечить совпадение ожидаемого и фактического поведения?

Выше мое назначение. Я знаю, что должен сделать свою домашнюю работу, но я застрял.

Для части а) я просто сказал, что 2 числа разные.

Для части в) я сделал поплавок в двойном. (Я думаю, что смысл остается неизменным)

Для части б) я знаю, что это называется катастрофической отменой, но проф, вероятно, хочет видеть больше, и я понятия не имею, что еще сказать. Кто-нибудь может мне помочь?

Спасибо за вашу помощь

Ответы на вопрос(2)

Ваш ответ на вопрос