Сумма с плавающей точкой не является точной [закрыто]
Рассмотрим следующую программу на 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 числа разные.
Для части в) я сделал поплавок в двойном. (Я думаю, что смысл остается неизменным)
Для части б) я знаю, что это называется катастрофической отменой, но проф, вероятно, хочет видеть больше, и я понятия не имею, что еще сказать. Кто-нибудь может мне помочь?
Спасибо за вашу помощь