Abrunden eines Float-Wertes mit PHP 5.2

Radhad

Erfahrenes Mitglied
Ich stehe gerade ziemlich auf dem Schlauch! Ich möchte gerne einen Float Wert mit 4 Stellen nach dem Komma so ändern, dass er nach 2 Stellen hinterm Komma abrundet. Im PHP Manual finde ich nur das folgende Beispiel für PHP 5.3 - ich brauche das aber für PHP 5.2!
PHP:
echo round(8.5, 0, PHP_ROUND_HALF_DOWN); // 8
Ich habe z.B. den folgenden Wert:
float(125.8882)

Egal was ich versuche, ich kriege immer:
float(125.89)

PHP:
sprintf("%.2f", $creditSum) // string(6) "125.89"

Hat jemand eine Idee?


NACHTRAG

Folgendes geht, aber geht es vielleicht auch einfacher?
PHP:
preg_match('/.*\.[0-9]{2}/', 125.8882, $match);


NACHTRAG 2:
Folgende Lösung sieht irgendwie besser aus:
PHP:
bcadd(125.8882, 0, 2);

Manchmal klappts doch irgendwie .... :D
 
Zuletzt bearbeitet:
floor mit Faktor zusammen ist der übliche Weg.

PHP:
<?php
$z = 125.8882;
echo (floor($z*100))/100;
echo "<br />\n";

echo scaledFloor($z, 2);

function scaledFloor($value, $scale = 0){
    $factor = pow(10, $scale);
    return (floor($value * $factor)) / $factor;
}
?>
 
Zurück