Sinus



  • Erhard Henkes schrieb:

    Fassen wir doch mal zusammen:
    Selbst mit PI = 3.14159265358979323846 schaffen wir es mit einfachen C++-Mitteln nicht, als Resultat von sin(180°) eine saubere und glatte Null zu liefern. Das ist doch wirklich armselig (oder schreibt man das inzwischen "armseelig"?) und zeigt den Zustand heutiger Rechner und Software deutlich. 😃

    Anmerkung: M_PI ist zwar in math.h bei Dev-C++ enthalten, aber nicht bei MSVC++6. Die genauere Zahl PI wird auf 3.1415926535898 abgeschnitten, wenn ich das im Debugger richtig sehe. Damit erhält man als sin(3.1415926535898 ) 1.2246063538224e-016. Mit "PI=2*asin(1);" verbessert sich die Situation kein Bisschen (früher: Bißchen). 😉

    Mit dem Calculator von MS Windows erhält man übrigens:
    sin(3.1415926535898 ) = -6,7615373566167204971157727028368e-15

    Nimmt man den genaueren Wert wie in M_PI definiert, so findet man mit dem MS Calculator:

    sin(3,14159265358979323846) = 2,6433832795028841970936031444713e-21

    Also (fast) keine Chance mit normalen C++ Bordmitteln. 🙄

    MS Calculator zeigt übrigens folgendes PI: 3,1415926535897932384626433832795

    nicht vergessen das die double in MSVC++ nur float ist.
    und somit ist das errechnete in der Maschinen Rechengenauigkeit.



  • long double ist gleich double, aber nicht double gleich float. Kannst Du mit sizeof(...) checken.



  • oops jo 🤡 passiert eifer des nicht denkens


Anmelden zum Antworten