Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

PHP potenziert falsch!

Hallo an alle,

habe gerade feststellen müssen, dass PHP falsch potenziert: :(>:(

Mein skript:
===============================================
    echo('2 ^ - 2 = ');
    echo(2^-2);
    echo('<br />');
    echo('2 ^ - 1 = ');
    echo(2^-1);
    echo('<br />');
    echo('2 ^ 0 = ');
    echo(2^0);
    echo('<br />');
    echo('2 ^ 1 = ');
    echo(2^1);
    echo('<br />');
    echo('2 ^ 2 = ');
    echo(2^2);
===============================================

Als ergebnis kommt leider raus: :o ???
===============================================
2 ^ - 2 = -4
2 ^ - 1 = -3
2 ^ 0 = 2
2 ^ 1 = 3
2 ^ 2 = 0
===============================================

Habe fieberhaft an einer Lösung für dieses roblem gesucht und schließlich dieses kleine Skript geschrieben:
Es Potenziert "manuell": 8)
===============================================
function Potenz($basis, $exponent) {
    $x = $basis * $basis;
    for($i=2; $i<$exponent; $i++) {
        $x *= $basis;
    }
    return $x;
}
===============================================

Und schon beekommt man mit:
===============================================
echo("Potenz(2, 2) = ".Potenz(2, 2)."<br />");
echo("Potenz(2, 3) = ".Potenz(2, 3)."<br />");
echo("Potenz(2, 4) = ".Potenz(2, 4)."<br />");
echo("Potenz(2, 5) = ".Potenz(2, 5)."<br />");
echo("Potenz(2, 6) = ".Potenz(2, 6)."<br />");
===============================================
das raus:
===============================================
Potenz(2, 2) = 4
Potenz(2, 3) = 8
Potenz(2, 4) = 16
Potenz(2, 5) = 32
Potenz(2, 6) = 64
===============================================

Es funzt zwar nur bei ganzzahligen Exponenten größer 1, also 2, 3, 4,...
Aber für meine Zwecke genügt das ::)


~~~~~~~~~~~~~~~~~~~~~~~
MfG Hendrik 

« Letzte Änderung: 23.09.10, 01:37:30 von .hendrik »

Antworten zu PHP potenziert falsch!:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Böses PHP  ;D

Böse, weil's nicht macht was du WILLST. Dabei hat PHP alles richtig gemacht, denn es macht, was du ihm SAGST. Gutes PHP! ;)

Ich weiß zwar nicht, wo du gelesen hast, dass man mit ^ potenzieren kann, aber in PHP ist das ein logischer Operator, und zwar ein bitweises XOR. Zum Runden solltest du dir pow() anschauen und auf dein vergleichsweise langsames Script verzichten ;)

greez 8)
JoSsiF

Tut mir leid ich hät' vill doch vorher mal googlen sollen un net nachher.....

Da macht man sich die Arbeit eine Funktion zu schreiben, und dann gibt es schnon eine .... *PEINLICH*


« PHP Formular, design für E-mail optimieren?Widget einbinden »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
PHP
PHP steht für Personal Home Page und ist eine Skriptsprache die meist verwendet wird zur dynamischen Erzeugen von Internetseiten. PHP zeichnet sich durch die weite D...

AppleScript
AppleScript ist eine Programmiersprache von Apple für Skripte und Programme auf Systemebene. Im Gegensatz zu den Unix-Shellscripts, die seit OS X ebenfalls mögl...

Javascript
JavaScript ist eine weit verbreitete Skriptsprache, die ursprünglich von Netscape für das DOM-Scripting für Webseiten entwickelt wurde. Sie hat sich seitde...