Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] sprintf aber wie ??

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] sprintf aber wie ??

    hey ho,
    ich kämpf nun ein wenig mit der sprinf() funktion
    und zwar versuche ich die in einem formular abgesendeten daten (zahlen) in ein entsprechendes format zu bringen, da diese an einen ofen zurück geschickt werden sollen

    hier mal einer meiner versuche

    PHP-Code:
    function getFormat($value$debug){
            
    $newformat=sprintf("%1$04d",$value);
            echo 
    $newformat "<br>";

    es wird mir immer 0001 aus egal welche zahl ich eintippe,
    das endgültige format soll bei positiven zahlen so aussehen:
    Code:
    0000.0
    bei negativen Zahlen so:
    Code:
    -000.0


  • #2
    Wenn immer 0001 rauskommt übergibst du falsche Werte. Die Funktion sieht soweit korrekt aus. Verwechselst du vielleicht $value und $debug?

    PHP-Code:
    <?php
    function custom_format($value)
    {
        return 
    sprintf("%1$04d"$value);
    }

    $values = array(
        
    1,
        
    10,
        
    100,
        
    1000,
        
    0,
        -
    1,
        -
    10,
        -
    100,
        -
    1000
    );
    echo 
    '<table border="1">';
    foreach (
    $values as $value) {
        echo 
    sprintf('<tr><td>%s</td><td>%s</td></tr>'$valuecustom_format($value));
    }
    echo 
    '</table>';
    "Mein Name ist Lohse, ich kaufe hier ein."

    Kommentar


    • #3
      Nicht reproduzierbar

      PHP-Code:
      $value 123;
      $s sprintf("%1$04d",$value); 

      echo 
      $s
      Ausgabe: 0123
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        habe meinen fehler gefunden, stand einfach mal wieder arg auf der leitung
        hier die lösung meines problems

        PHP-Code:
        function getFormat($value$debug){
                
        $newform=sprintf("%1$06.f"$value);
                if(
        $debug===1){
                     echo 
        "debug getFormat: " $newform "<br> var_dump() getFormat: ";
                     
        var_dump($newform);
                     echo 
        "<br>";
                 }
                 return 
        $newform;

        scheint als könne php keine als vorher definierte double in einen int umwandeln, war mir nicht klar, da php sonst ja auch sehr dynamisch mit den datentypen jongliert ... neue erkenntnis

        Kommentar


        • #5
          Zitat von Gabbanerd Beitrag anzeigen
          scheint als könne php keine als vorher definierte double in einen int umwandeln, war mir nicht klar, da php sonst ja auch sehr dynamisch mit den datentypen jongliert ... neue erkenntnis
          Doch, PHP kann das und macht das auch wenn nötig.

          Du verwechselt aber PHP mit sprintf - immerhin hast DU sprintf gesagt "behandele den Wert als unsigned integer" (%d) und nicht "behandele den Wert als floating point" (%f).
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            das könnte PHP schon - mit einer expliziten Typ-Umwandlung, nur macht PHP diese nicht, nur weil ein Ausgabe-Specifier im sprintf drinsteht - der sollte zu den Eingabedaten passen. Obendrein willst du ja ein ".0" dranhängen, was wiederum kein "%d" voraussetzt - das wäre ja ein integer-typ
            "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

            Kommentar


            • #7
              Edit - ich brauch noch'n Kaffee .. bin noch nicht richtig wach
              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

              Kommentar

              Lädt...
              X