Quadratwurzel Java - Kriterium für exaktes Ergebnis
Hey Leute ich hab da mal eine Frage, Die Quadratwurzel kann in der Regel bei der Berechnung in Java mit einem Gleitkommatyp nicht exakt bestimmt werden und jetzt wollte ich euch Fragen ob es da ein sinnvolles Kriterium gibt, wann das Ergebnis exakt genug ist.
Liebe Grüße, Triban
3 Antworten
Dieses "sinnvoile Kriterium" hängt in der Regel von der Anwendung ab. Eine wissenschaftliche Simulation benötigt in der Regel mehr Nachkommastellen als z.B. ein Spiel.
Häufig wird man das ganze dann mit einem epsilon lösen, also einer vorher festgelegten Toleranz
Wenn du etwas ähnliches wie folgender User vor hast:
https://www.gutefrage.net/frage/c-programmieren-warum-funktioniert-folgende-funktion-nicht
Als Abbruchkriterium kannst du festlegen, dass der Wert Betrag(y-x/y) nicht mehr kleiner wird (also größer-oder-gleich dem vorherigen Schleifendurchlauf ist).
(x=Zahl unter der Wurzel; y=Berechnete Quadratwurzel)
Der Wert "y" aus der vorherigen (!) Schleife ist dann der Wert, den ich ausgeben würde.
Naja, das ist Deine Genauigkeit, die Du benötigst.
Wenn Du nicht weis wie genau Du Dein Ergebnis haben willst dann schau mal hier:
http://stackoverflow.com/questions/13649703/square-root-of-bigdecimal-in-java
Will eine Umkehrfunktion berechnen