Scooter: Zahlen immer mit 2 Kommastellen anzeigen lassen

Hi,

ich habe in meiner Datenbank tabelle Zahlen vom Typ DECIMAL(8,2) abgelegt. Also 8 Stellen vor, und 2 Stellen nach dem Komma.

Wenn ich die auslese und nach dem Komma stehen nur Nullen, dann werden diese einfach weggelassen.

(ausgabe erfolgt mittels PHP)

In der DB steht also z.B.: 12.00 und daraus wird 12
steht da 12.50 wird daraus 12.5

Da diese Zahlen Preise darstellen, möchte ich, das immer auch die Nullen mitausgegeben werden, also immer 2 Nachkommastellen.

In C gabs ne einfache Formatierung für: printf("%.2f"); oder so ähnlich jedenfalls.

Geht das in PHP auch?

habe es mit round($zahl, 2) probiert, aber das geht auch nicht.

Gruß
Scooter

  1. Servus,

    bei PHP bin ich mir nicht sicher, das es aber nur um anzeige geht, könntest du ja auch die Zahl in einen String konvertrieren und dort die nullen Anhängen.

    Ich weiss nicht die beste Lösung aber bis Du was besseres gefunden hast dürfte es ja ausreichen.

    Und ja ich glaube es müsste auch bei PHP möglich sein.
    Schau dazu mal in einer "anständigen" Doku nach.
    Z.B. PHP in a Nutshell.

    Gruss Matze

  2. Hallo,

    du bist nur noch 3 Fragen von der Umbenennung des "Selfhtml" Forums in das "Scooter fragt ..." Forum enfernt :)

    mfg NAG

    --
    signatur
    1. Hi,

      du bist nur noch 3 Fragen von der Umbenennung des "Selfhtml" Forums in das "Scooter fragt ..." Forum enfernt :)

      Du spinnst ja. Nur weil ich heute mal 3 Fragen in relativ kurzer Zeit hintereinander gestellt habe?!?! Ansonsten habe ich ja nichts gefragt.
      Es gibt sicher mehr Leute, die hier öfters als ich sind.

      Gruß
      Scooter

  3. Hi Scooter!

    Der Lösungsansatz von Matze ist auch mein Favorit! Auch ich muß Dir sagen, daß es sicher bessere Lösungen gibt, aber da ich weiß nicht wirklich, wie die Ausgabe  Deiner Datenbank ausshiet... Des Weiteren gibt es die komplette Documentation unter: http://www.php.net/distributions/manual/php_manual_de.chm

    Folgeden Lösungsweg würde ich gehen.

    $zahl = ~ Datenbankausgabe ~;

    $zahl = explode (".",$zahl); //die zerlegt var $zahl in $zahl[0] = Ganzzahlig $zahl[1] = dezimal;
    $zahl = $zahl[0].",".str_pad ($zahl[1], 2, "0", STR_PAD_RIGHT); //str_pad () ist die von Matze angesprochene Funktion, die einen String erweitert

    Das war's schon!

    ==========
    Anmerkung:

    Es ist mir völlig egal, wielange jemand hier Fragt und wie oft. Wichtig ist es zu fragen. Weiter so!

    Lieber "NAG" wir alle haben einmal klein angefangen und es besteht kein Grund jemanden, der noch nicht so gescheit ist, wie Du, mit Deinem Kommentar im Regen stehen zu lassen.

    Gruß aus Berlin!
    eddi

  4. Hi,

    In C gabs ne einfache Formatierung für: printf("%.2f"); oder so ähnlich jedenfalls.

    gibts auch in PHP, unten auf der Seite gibt es bestimmt auch ein Beispiel für das Problem

    http://de2.php.net/manual/de/function.printf.php

    ciao
    romy

  5. Hallo scooter,

    Ich habe über den Beitrag von 'nag' sehr gelacht.
    Trotzdem:
    Ich meine der 'klassische' Ansatz ist dieser:

    Zahl mit 100 multiplizieren, in String umwandeln, die zwei letzten Stellen durch Komma abtrennen. So kannst Du auch ggf. nur eine Null anhängen, also z.B. aus 126,5 wird 126,50.

    Gruß, Andreas

  6. Hallo,

    ich habe in meiner Datenbank tabelle Zahlen vom Typ DECIMAL(8,2) abgelegt. Also 8 Stellen vor, und 2 Stellen nach dem Komma.

    Nein, das bedeutet 8 signifikante Stellen incl. 2 Nachkommastellen, wobei zusaetzlich eine Stelle fuer das Vorzeichen reserviert ist, also der Bereich:

    -999999.99 bis 9999999.99

    habe es mit round($zahl, 2) probiert, aber das geht auch nicht.

    number_format($zahl,2)

    MfG, Thomas

    1. Hi,

      number_format($zahl,2)

      Hey Super! Diese Funktion habe ich gesucht!

      Gruß
      Scooter!