NiX: Zahl formatieren

Guten Tag.

Ich möchte eine Zahl, von der ich nicht weiss ob Sie Bsp. 60, 60.00, 60.60 oder 60.66 lautet formatieren und zwar so:

Immer ohne ende Nullen, also:
60 -> 60
60.00 -> 60
60.60 -> 60.6
60.66 -> 60.66

Wenn ich eine Zahl wie 60 habe und daraus 60.00 machen will, benutze ich ja sprintf(...);

Wie mache ich das hier?

Grüsse,
NiX.

  1. hi,

    Ich möchte eine Zahl, von der ich nicht weiss ob Sie Bsp. 60, 60.00, 60.60 oder 60.66 lautet formatieren und zwar so:
    Immer ohne ende Nullen, also:
    60 -> 60
    60.00 -> 60
    60.60 -> 60.6
    60.66 -> 60.66
    Wenn ich eine Zahl wie 60 habe und daraus 60.00 machen will, benutze ich ja sprintf(...);
    Wie mache ich das hier?

    gibt php zahlen nicht sowieso immer ohne rechtsstehende nullen nach dem punkt aus?

    oder hast du vllt. die 'zahl' als string vorliegen?
    dann könntest du mit den string funktionen alle rechts stehenden nullen abschneiden; natürlich nur die _nach_ dem punkt, also vorher danach suchen.

    gruss,
    wahsaga

    1. Hallo

      oder hast du vllt. die 'zahl' als string vorliegen?

      Ja, ist eben ein String.

      dann könntest du mit den string funktionen alle rechts stehenden nullen abschneiden; natürlich nur die _nach_ dem punkt, also vorher danach suchen.

      Nein, manchmal gibt es ja nach dem Punkt noch eine "Kommazahl"

      Grüsse,
      NiX.

      1. hi,

        dann könntest du mit den string funktionen alle rechts stehenden nullen abschneiden; natürlich nur die _nach_ dem punkt, also vorher danach suchen.
        Nein, manchmal gibt es ja nach dem Punkt noch eine "Kommazahl"

        deshalb sagte ich ja auch die nach dem punkt stehenden _nullen_ - von rechts aus gesehen! - abschneiden.
        also quasi von rechts aus anfangen, und solange die äussere ziffer eine '0' ist, wegschmeissen - und beim ersten zeichen ungleich '0' (also punkt oder andere ziffer) aufhören.

        gruss,
        wahsaga

        1. Hallo,

          ist zwar vielleicht ein wenig umständlich gescriptet (hab ich grad auf die Schnelle gemacht), sollte dir aber helfen:

          <?php
          function delete_nulls($input, $check)
          {

          if($check=="on")
          {
            $komma=explode(".", $input);
            $befor_komma=$komma['0'];
            $after_komma=$komma['1'];
          }
          else
          {
            $after_komma=$input;
          }

          $after_komma_len=strlen($after_komma);
          $after_komma_last=strrpos($after_komma, "0")+1;

          if($after_komma_len==$after_komma_last)
          {
            $after_komma=substr($after_komma, "0", $after_komma_last-1);

          $after_komma_len_check=strlen($after_komma)-1;
            if(substr($after_komma, $after_komma_len_check, 1)=="0")
            {
              $after_komma=delete_nulls($after_komma, "off");
            }
          }
          else
          {
            $check="on";
          }

          if($check=="on")
          {
            if(isset($after_komma))
            {
            $output=$befor_komma.".".$after_komma;
            }
            else
            {
            $output=$befor_komma;
            }
          }
          else
          {
            $output=$after_komma;
          }
            return $output;

          }

          echo delete_nulls("50.0500", "on");

          ?>

          Mit "delete_nulls("der zahl", "on") rufst du die Funktion auf!

          Ich garantiere für nichts! gg

          cu Benedikt Loepp

          --
          visite http://www.webocton | [gw] bigBENNE | Benedikt Loepp
          1. Hallo.

            OK, danke es geht nun ;-)

            Grüsse, NiX.