Hallo,
Folgendes Problem. Für ein bisschen Matheprogrammierung verwende ich aktuell PHP in Verbindung mit der gmplib (Paketname unter Lucid: php5-gmp). Nun habe ich eine Funktion geschrieben, mit der ich Potenzen ausrechnen kann:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function expon ($gz,$expn) { if ($expn != 0) { $erg = $gz; for ($i=2;$i<=$expn;$i++) { $erg = gmp_mul($erg, $gz); } } else { $erg = 1; } return $erg; } |
Im Prinzip funktioniert diese Funktion auch gut. Sobald ich aber eine Dezimalzahl als Basis nehme, bekomme ich als Ergebnis immer "0" und das Logfile sagt mir:
PHP Warning: gmp_mul(): Unable to convert variable to GMP - wrong type in $path/forward.php on line 5
Ganz offensichtlich kommt gmp_mul also nicht mit diesen Dezimalzahlen zurecht, es muss im GMP-Paket also eine andere Funktion für die Multiplikation von Dezimalzahlen geben. Eine Übersicht über die Funktionen gibt es hier. Oder mache ich einfach sonst irgendetwas falsch? Ich würde mich sehr über Hilfe freuen!
MfG
Nexon