Blog

PHP number_format() und die Rundung negativer Zahlen auf 0

Verfasst von: Marius Cramer

PHP number_format() und die Rundung negativer Zahlen auf 0

Bekanntermaßen rundet auch die PHP Funktion number_format() die übergebenen Zahlen auf die gewünschte Anzahl Kommastellen.

$a = 2.658;
$x = number_format($a, 2, ',', '.'); // --> 2,66
$x = number_format($a, 0, ',', '.'); // --> 3

Ein meiner Meinung nach unschöner Effekt für die Ausgabe ergibt sich bei Zahlen, die gerundet 0 ergeben sollten, wenn diese negativ sind.

$a = -0.00000003;
$x = number_format($a, 2, ',', '.'); // --> -0.00
$x = number_format($a, 0, ',', '.'); // --> -0

Besonders ärgerlich ist dies, wenn es durch die internen Beschränkungen der Genauigkeit bei Fließkommazahlen beim Rechnen entsteht.

$a = 7.8;
$b = 7.79;
$c = 0.01;
$ergebnis = $a - $b - c;
$x = number_format($ergebnis, 2, ',', '.'); // --> -0.00

Die -0.00 entstehen hier, da das Ergebnis durch die oben genannten Ungenauigkeiten -0.00000000000000021337 ergibt.
Dieses Ergebnis hängt allerdings auch von der PHP Version und der gewählten Einstellung in PHP zur Fließkommagenauigkeit ab.
Im Test habe ich PHP 5.3 mit einer Genauigkeit von 13 Stellen verwendet.

Das Verhalten von number_format() kann man elegant umgehen, indem man die Zahl schon vorher mit der Funktion round() auf die gewünschte Anzahl Nachkommastellen rundet.

$a = -0.00000003;
$x = number_format(round($a, 2), 2, ',', '.'); // --> 0.00
$x = number_format(round($a, 0), 0, ',', '.'); // --> 0

Nach diesen Begriffen suchten die Benutzer:

  • number_format rundet
  • number_format negative zahlen
  • number_format php und prozent berechnung
  • php minus und minus
  • number_format()
  • php abrunden alternative zu round
  • number_format($zahl 0)
  • rechnen mit integer runden
  • php number_format funktioniert nicht
  • php number_format runden
  • negative zahlen zu 0 machen
  • php rnegative werte runden
  • php mit negativen zahlen rechnen
  • php minus rechnen
  • number_format php 5 3
  • php runden keine negativen zahlen
  • number_format() php
  • number_format php rechnen
  • number_format php rechnen
  • php negative werte
  • php zahlen mit 00
  • php number_format alternative
  • php number_format zum runden
  • php durch rechenen und ganzzahl
  • Linux rechnen Zahlenwert runden
0


Kommentar hinzufügen

E-Mail-Benachrichtigung bei weiteren Kommentaren.