извините если туплю, но не нашел ответа.
#include <iostream>
using namespace std;
int main()
{
double a(0);
double b(0.001);
cout << a - 0.0 << endl;
for (;a<1.0;a+=b);
cout << a - 1.0 << endl;
for (;a<10.0;a+=b);
cout << a - 10.0 << endl;
cout << a - 10.0-b << endl;
return 0;
}
Вывод:
0
6,66134e-16
0,001
-1,03583e-13
Пробовал компилировать с помощью MSVC9, MSVC10, Borland C++ 2010. Все они приходят в итоге к ошибке примерно 1e-13. Нормально ли иметь такое значительное накопление ошибок всего за 1000, 10000 приращений?