Moin,
ich programmiere gerade eine Spielphysik. Dabei ist eine genaue Berechnung natürlich das A und O. Als Hilfe habe ich mir einen kleinen Unittest gebastelt. Vorher rechne ich etwas im Taschenrechner oder auf Webseite aus, schreibe die erwartete Lösung in den Unittest und hoffe, dass meine Funktion auf das gleiche kommt.
Jetzt gibt es eine Berechnung sqrt( 1 * 1 - 0.89101 * 0.89101) die bei meinem System und bei Google auf 0,45398 ( 0,45398367801056 ) kommt auf anderen Webseiten jedoch auf 0,45399 ( 0,4539904997 ). Ein Rundungsfehler ist es nicht. Ich habe es in JS, PHP, meinem Taschenrechner und auf Google getestet. Es kommt jedesmal das Ergebnis mit der 8 an Position 5. Auf anderen Webseiten kommt das Ergebnis mit der 9 am Ende.
Wie kann sowas sein? Ist das Wurzelziehen nicht eindeutig? Oder gibt es da zwei Methoden? Auf welche kann ich mich verlassen und wenn mein System falsch rechnet, wie kann ich es ihm richtig beibringen?
Fragen über Frage. Vielen Dank fürs lesen und eventuellem Antworten.
Gruß √(T*Rex)