Elke: Vor dem KOmma mit NULL auffüllen; number_format ?

Ich möchte gerne zwei Stellen vor dem Komma haben, und mit NULL auffüllen wenns nötig ist:

$zahl = "5,7";
echo number_format ( $zahl, 2, ',', '.' )

gibt 5,70

Ich möchte aber als Ausgabe 05,70

wie kann ich den dies bewerkstelligen?

Elke

  1. Hallo,

    Ich möchte gerne zwei Stellen vor dem Komma haben, und mit NULL auffüllen wenns nötig ist:

    $zahl = "5,7";
    echo number_format ( $zahl, 2, ',', '.' )

    gibt 5,70

    Ich möchte aber als Ausgabe 05,70

    okay, führende Nullen zu erzwingen ist natürlich recht ungewöhnlich. Ich würde das nicht wollen, aber das tut nichts zur Sache.

    wie kann ich den dies bewerkstelligen?

    Wie wär's mit str_pad()?

    Ciao,
     Martin

    --
    F: Was sagt die kleine Kerze zur großen Kerze?
    A: Ich gehe heute nacht aus!
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  2. Moin,

    $zahl = "5,7";

    Das wäre ein String... Dort funktioniert es, wie Martin beschrieben hat.

    Ich möchte aber als Ausgabe 05,70

    Mit eine Fließkommazahl geht es beispielsweise so:

    $zahl=5.7;  
    echo sprintf("%05.02f",$zahl);
    

    Grüße Marco

    --
    Ich spreche Spaghetticode - fließend.
    1. Tach!

      $zahl = "5,7";
      Das wäre ein String... Dort funktioniert es, wie Martin beschrieben hat.
      Mit eine Fließkommazahl geht es beispielsweise so:

      $zahl=5.7;

      echo sprintf("%05.02f",$zahl);

        
      Es gibt auch printf(), aber abgesehen davon, kann dank PHPs eingebauter Typumwandlung %...f auch mit Zahlen in einem String gefüttert werden. Die Zahl muss allerdings auch mit Punkt statt Komma getrennt sein.  
        
        
      dedlfix.
      
    2. Hi,

      Das wäre ein String... Dort funktioniert es, wie Martin beschrieben hat.

      nein, es funktioniert auch mit echten Zahlen, denn Elke schiebt sie ja sowieso schon durch number_format(), um ein Komma als Dezimaltrennzeichen zu erhalten. Und dann hat sie einen String, zum Beispiel "5,70".

      Ich möchte aber als Ausgabe 05,70

      Deswegen ein nachgeschaltetes bzw. außendrum geschachteltes str_pad().

      Mit eine Fließkommazahl geht es beispielsweise so:

      $zahl=5.7;

      echo sprintf("%05.02f",$zahl);

        
      Daran dachte ich auch als erstes, aber damit hat sie noch kein Komma als Dezimaltrennzeichen, wie dedlfix auch schon ammerkte.  
      Die Null nach dem Punkt im Formatstring ist übrigens sinnfrei.  
        
      Ciao,  
       Martin  
      
      -- 
      Arzt:    Gegen Ihr Übergewicht hilft wohl nur noch Gymnastik.  
      Patient: Sie meinen, Kniebeugen und so?  
      Arzt:    Nein, Kopfschütteln. Immer dann, wenn Ihnen jemand was zu essen anbietet.  
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      
      1. Moin,

        Daran dachte ich auch als erstes, aber damit hat sie noch kein Komma als Dezimaltrennzeichen, wie dedlfix auch schon ammerkte.

        Stimmt, an das Komma hatte ich gar nicht gedacht. Aber ich kann mirs leisten, ich bin nämlich "nicht gerade für fachliche Kompetenz bekannt" ^^

        Grüße Marco

        --
        Ich spreche Spaghetticode - fließend.
        1. Tach!

          Aber ich kann mirs leisten, ich bin nämlich "nicht gerade für fachliche Kompetenz bekannt" ^^

          Nicht dass du da was verwechselst. Diese Aussage bezog sich auf WernerKs Archiv-Fundstück, nicht auf dich. Denn im Archiv wurde das DISTINCT auf eine Ergebnismenge mit ID angewendet, was nicht sinnvoll ist, weil die ID den Datensatz ja schon eindeutig macht.

          dedlfix.

          1. Moin,

            Nicht dass du da was verwechselst. Diese Aussage bezog sich auf WernerKs Archiv-Fundstück, nicht auf dich. Denn im Archiv wurde das DISTINCT auf eine Ergebnismenge mit ID angewendet, was nicht sinnvoll ist, weil die ID den Datensatz ja schon eindeutig macht.

            Achso. Das hatte ich falsch verstanden :)

            Grüße Marco

            --
            Ich spreche Spaghetticode - fließend.