Betrag von x unter PHP

Ich will mit Hilfe dies PHP-Skripts die Wurzel einer Zahl berechnen:
PHP:
<?php
/*Das Programm soll die Wurzel einer Zahl($Zahl) mit der Genauigkeit($genauigkeit) berechnen.*/
$zahl = 16;
$unten = 1;
$oben = $zahl/2;
$genauigkeit = 0.0000001;
echo "Oben: $oben Unten: $unten<br>";
while ($oben - $unten > $genauigkeit)
{
	$obenquadrat = $oben * $oben;//Quadrat von oben
	$untenquadrat = $unten * $unten;//Quadrat von unten
	$mitte = ($unten + $oben)/2;//Mitte der Zahlen
	if ($zahl-$obenquadrat < $zahl-$untenquadrat)
	{
			$unten= $mitte;
			echo "Oben: $oben Unten: $unten<br>";//Diehnt zu leichtern Fehlerbehebung
	}
	elseif ($zahl-$obenquadrat > $zahl-$untenquadrat)
	{
		$oben= $mitte;
		echo "Oben: $oben Unten: $unten<br>";//Diehnt zu leichtern Fehlerbehebung
	}
}
?>

Das Problem liegt in Zeile 13: 16-(8?)=-48 ist kleiner als 16-(1?) deswegen wird $unten verändert und nicht $oben,welche ja weiter entfernt ist. Deswegen suche ich nach einer möglichkeit den Betrag einer Zahl zubrechnen(Betrag von -12 ist 12) oder ein unsinged Varibale zu deklarieren. Aber leider Spuckt google zu beidem nichts aus.

gruß Stein

Edit: Das kommt davon wenn man beim posten sein Programm ein wenig erweitert: PhP hat einen Dezimalpunkt nicht Komma

Geistesblitz:
PHP:
<?php
$a = $zahl - $obenquadrat
if ($a<0)
{
$a= $a*-1
}
?>
Aber gibt es da nicht auch eine elegante Lösung? Was meint ihr?
 
Quadratwurzel: bcsqrt(Zahl,Genauigkeit)
andere Wurzel: bcpow(Zahl,Potenz,Genauigkeit)
(8^(1/3)=2)
habs von google - noch nicht selbst ausprobiert
 
Ja das kann jeder aber die "Kunst" ist es das selber zumachen. ---> Ich hatte langweile und wollte ein wenig programmieren, jedoch fand ich keine Programmieraufgabe, auf die ich Lust hatte.

Danke an alle.

gruß stein
 
Zurück
Oben