Zweiställige Zahlen generriren 1 > 01

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

  • Zweiställige Zahlen generriren 1 > 01

    Hallo,

    Ich brauch eure Hilfe wie mache ich aus einer einstelligen Zahl eine zweistelligen Zahl ?

    z.B.
    wenn einer in ein Formular eine 1 dann soll daraus 01 werden bei einer 12 soll natürlich keine 0 vorgestellt werden wie mache ich das ?

    und wie mache ich die vorstehenden nullen cor einer Zahl wieder weg ?
    also aus 01 > 1 ?

    Ich freue mich auf eure Lösungs vorschläge

    Grüße

    Florian

  • #2
    sprintf() ist dein freund
    Kissolino.com

    Kommentar


    • #3
      PHP-Code:
      if (strlen($zahl)==1) {
        
      $zahl '0'.$zahl;

      hab's nicht getestet...
      ... soll ja auch nur ein Ansatz sein

      EDIT:
      Aber hör besser auf Wurzel ;-)
      [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

      [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

      [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
      (from here)

      Kommentar


      • #4
        Original geschrieben von Meillo
        hab's nicht getestet...
        ... soll ja auch nur ein Ansatz sein :P
        hey. damit ist es aber keine zahl mehr...

        EDIT:
        sehe ich genauso .... ( dein edit )
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          ist denn '01' noch ne Zahl ?

          IMO nicht.
          Ich weiß ja nicht wie PHP das sieht
          [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

          [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

          [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
          (from here)

          Kommentar


          • #6
            Original geschrieben von Meillo
            ist denn '01' noch ne Zahl ?

            IMO nicht.
            Ich weiß ja nicht wie PHP das sieht
            was machst du mit:

            $zahl = '0'.$zahl;

            Richtig, eine String-Operation, also was glaubst du, wasfür einen Typ das Ergebnis hat

            Kommentar


            • #7
              PHP ist es doch völlig egal, ob String oder Zahl. Das wird bei Bedarf automatisch umgewandelt.

              Wenn deine Zahlen mit 0 anfangen hast du allerdings das Problem, dass die als Oktalzahlen behandelt werden, was manchmal zu etwas merkwürdig erscheinenden Ergebnissen führen kann.

              Ich hatte, um aus 01 eine 1 zu machen immer folgendes gemacht:
              PHP-Code:
              $zahl $zahl+0
              (ist aber schon ne Weile her, und auch keine wirklich saubere Lösung )
              hopka.net!

              Kommentar


              • #8
                Original geschrieben von asp2php
                was machst du mit:

                $zahl = '0'.$zahl;

                Richtig, eine String-Operation, also was glaubst du, wasfür einen Typ das Ergebnis hat
                Ist mir bewusst, aber gibt es die Zahl '01' ?
                [COLOR=royalblue]Ein großes DANKE an alle, die sich auf selbstlose Weise im Forum einbringen.[/COLOR]

                [COLOR=silver]btw: REAL PROGRAMMERs aren't afraid to use GOTOs![/COLOR]

                [color=indigo]Etwas ernster, aber auch nicht weiter tragisch, sieht die Situation bei Software-Patenten aus. Software-Patente sind eine amerikanische Erfindung und stehen auf dem selben Blatt wie genveränderte Babynahrung, die im Supermarkt nicht mehr als solche gekennzeichnet werden soll, um die Hersteller nicht gegenüber denen natürlicher Produkte zu diskriminieren ...[/color]
                (from here)

                Kommentar


                • #9
                  du verstehst was nicht

                  PHP nimmt Typenkonvertierung in den meisten Fällen automatisch vor.
                  $zahl ist nach einer Zuweisung aus dem Ergebnis einer Stringoperation vom Typ String, und wird zu Integer wenn das Ergebnis vom Typ Integer ist usw., d.h. durch die Zuweisung erzwingst du eine implizite Typenkonvertierung. PHP ist es nicht egal von wasfür ein Typ die Variable ist, wenn du nicht glaubst, dann übergibt irgendeiner Funktion einen String als Parameter, wo eigentlich Integer erwartet wird, dann erhältst du auch Fehlermeldungen

                  Kommentar


                  • #10
                    Original geschrieben von Meillo
                    Ist mir bewusst, aber gibt es die Zahl '01' ?
                    natürlich nicht. führende nullen gibt es bei zahlen nicht.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      Original geschrieben von Meillo
                      Ist mir bewusst, aber gibt es die Zahl '01' ?
                      In PHP schon. Ist nämlich eine Oktalzahl. Hat dezimal aber auch den Wert 1.
                      hopka.net!

                      Kommentar


                      • #12
                        Original geschrieben von Hopka
                        In PHP schon. Ist nämlich eine Oktalzahl. Hat dezimal aber auch den Wert 1.
                        Naja, aber wie sieht es dann mit der "Zahl" 000000000000001 aus?
                        PHP ist es wurscht ob dein Wert eine Zahl oder ein String ist.
                        Mathematische Oparationen kannst du mit beiden durchführen, sofern es sich bei deinem String als eine interpretierbare Zahl handelt.

                        Aber um deine Frage hier endlich mal zu beantworten,
                        so gehts:

                        PHP-Code:
                        $zahl sprintf("%02s",$zahl); 
                        MfG - fackelkind | codeMaster
                        54 68 65 72 65 20 61 72 65 20 6F 6E 6C 79 20 31 30 20 74 79 70 65 73 20 6F 66 20 70 65 6F 70 6C 65 20 69 6E 20 74 68 65 20 77 6F 72 6C 64 3A A 54 68 6F 73 65 20 77 68 6F 20 75 6E 64 65 72 73 74 61 6E 64 20 62 69 6E 61 72 79 2C 20 61 6E 64 20 74 68 6F 73 65 20 77 68 6F 20 64 6F 6E 27 74

                        Kommentar


                        • #13
                          Erst mal ein grosses Danke an Wurzel

                          Seine Lösung ist die einzige gute Idee.
                          Die anderen Lösungen sind ja nicht gerade das was ich mir unter Lösungen vorstelle !

                          Aber einen grossen dank an Alle schönes Board.

                          So habe ich es jetzt gamacht.


                          PHP-Code:

                          $tag 
                          "1";
                          $isodatum sprintf ("%02d"$tag);
                          echo 
                          "$isodatum"

                          Kommentar


                          • #14
                            54 68 65 72 65 20 61 72 65 20 6F 6E 6C 79 20 31 30 20 74 79 70 65 73 20 6F 66 20 70 65 6F 70 6C 65 20 69 6E 20 74 68 65 20 77 6F 72 6C 64 3A A 54 68 6F 73 65 20 77 68 6F 20 75 6E 64 65 72 73 74 61 6E 64 20 62 69 6E 61 72 79 2C 20 61 6E 64 20 74 68 6F 73 65 20 77 68 6F 20 64 6F 6E 27 74

                            Kommentar


                            • #15
                              Damit ihr auch das Ergebniss sehen könnt Poste ich es mal !

                              Das ist eine Funktion die mir für ein Formular eine Datum auswahl erstellt.
                              Habt ihr noch eine Idee wie man den Code optimiren kann ?
                              PHP-Code:
                              <?
                              function form_datum ($d1,$d2,$d3,$startjahr,$endjahr) {

                              // Erstellen Tag    
                                  echo "<select size=\"1\" name=\"d1\">";
                                    $tag = 0;
                                    while($tag < 31) {
                                      $tag++;
                                      $isotag = sprintf ("%02d", $tag);
                                      if($d1 == "$tag") {
                                      echo"     <option selected>$isotag</option>\n";
                                      }
                                  else {
                                      echo"<option>$isotag</option>\n";
                                      }
                                  }
                                  echo "</select>";    

                              // Erstellen Monat
                                  echo "<select size=\"1\" name=\"d2\">";
                                 $monat = 0;
                                 while($monat < 12) {
                                         $monat++;
                                      $isomonat = sprintf ("%02d", $monat);
                                      if($d2 == "$monat") {
                                          echo"     <option selected>$isomonat</option>\n";
                                      }
                                      else {
                                          echo"<option>$isomonat</option>\n";
                                      }
                                  }
                                  echo "</select>";
                                  
                              // Erstellen Jahr    
                                  echo "<select size=\"1\" name=\"d3\">";
                                    $endjahr++;
                                    while($startjahr < $endjahr) {
                                      if($d3 == "$startjahr") {
                                          echo"     <option selected>$startjahr</option>\n";
                                      }
                                      else {
                                          echo"<option>$startjahr</option>\n";
                                      }
                                      $startjahr++;
                                  }
                                  echo "</select>";
                              }
                              ?>

                              Kommentar

                              Lädt...
                              X