Das vollständige Programm steht unten.
Quadratwurzel
-Program
In dem vervollständigten Programm kann die Rolle von "alteSchaetzung" und von "neueSchaetzung" von der Variablen schaetzung
übernommen werden.
class Quadratwurzel
{
public static void main( String[] args )
{
final double FASTNULL = 1.0E-14 ;
double n = 3.0 ;
double schaetzung = 1.0 ;
while ( Math.abs( n/(schaetzung*schaetzung) - 1.0 ) > FASTNULL )
{
// einen neuen Wert für schaetzung berechnen
schaetzung = n/(2*schaetzung) + schaetzung/2 ;
}
System.out.println("Die Quadratwurzel von " + n + " ist " + schaetzung ) ;
}
}
Hier ist der Output des Programms:
C:\daten\JavaNotes\chap19>java Quadratwurzel Die Quadratwurzel von 3.0 ist 1.7320508075688772
Die letzten Ziffern dieses Outputs sind wahrscheinlich falsch, da das Programm das Ergebnis nur mit einer Genauigkeit von 14 Dezimalstellen berechnet.
Was könnte passieren, wenn wir eine größere Genauigkeit verlangen als Variable mit doppelter Genauigkeit besitzen?
Zum Beispiel, angenommen FASTNULL
wäre 1.0E-21?