Entschuldigung wenn dumm aber konnte keine Antwort finden.C++ Numerischer Trunkierungsfehler
#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;
}
Ausgang:
6.66134e-16
0,001
-1.03583e-13
Versuchte es mit MSVC9, MSVC10, Borland C++ 2010 alle von ihnen in die ankommen Kompilieren end auf den Fehler von etwa 1e-13. Ist es normal, eine solch signifikante Fehlerakkumulation über nur 1000, 10000 Inkremente zu haben?
http://docs.sun.com/source/806-3568/ncg_goldberg.html – Anycorn
http://home.comcast.net/~tom_forsyth/blog zu klären. wiki.html # [[A% 20matter% 20of% 20precision]] (nicht ich, heh) –