Aquila: dezimal zahlen kürzen ohne zu runden

hi,

ich suche eine php funktion, mit der ich dezimal zahlen nach der ersten stelle hinterm komma abschneiden kann, ohne das gerundet wird.

wär cool, wenn einer sowas weiss,
danke,
Aquila

  1. Hallo,

    ich suche eine php funktion, mit der ich dezimal zahlen nach der ersten stelle hinterm komma abschneiden kann, ohne das gerundet wird.

    Z. B. so:

    printf("%.1f",floor($zahl*10)/10);

    MfG, Thomas

    --
    SVG - Learning By Coding
    http://svglbc.datenverdrahten.de/
    1. Hello,

      printf("%.1f",floor($zahl*10)/10);

      echo substr($zahl,0,str_pos($zahl,'.')+2);

      könnte auch funktionieren, voruasgesetzt, dass ein Punkt drin ist.
      Besser, man baut sich eine vernünftige Funktion dafür.

      Die Lösung mit der Multiplikation kann an den Bereichsgrenzen hässliche Seiteneffekte bringen.

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      [ Computer-Camp für PHP-Anwender in den Sommerferien. Programmieren,
        Sport, Fun, Fete. Teilnehmermindestalter Gruppe 1: 14 Jahre
        Mindestalter Gruppe 2+3 18 Jahre, Info bei mir ]
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
  2. Hello,

    habe noch ein bisschen gebastelt:

    function cut_dec($zahl, $len=2)
    {
      $pos = strpos($zahl,'.');
      if (($pos !== false))
      {
        if ($len > 0)
        {
          $zahl = substr($zahl.str_pad('0',$len,'0'),0,$pos+$len+1);
        }
        elseif ($len == 0)
        {
          $zahl = substr($zahl.str_pad('0',$len,'0'),0,$pos+$len);
        }
      }
      return $zahl;
    }

    Bisschen hübscher machen musst Du sie dir selber. Bei negativen Längenvorgaben werden diese ignoriert, bei Weglassen der Länge
      echo cut_dec($zahl)
    wwerden immer 2 Nachkommastellen angezeigt, bei Längenvorgaben größer 0 wird diese benutzt. Ist die Vorgabe größer als die vorhandenen Nachkommastellen, wird mit 0 aufgefüllt.

    Wenn kein Dezimalpunkt in der Zahl enthalten ist, wird die zahl unverändert
    zurückgegeben.

    Fehlermöglichkeiten:

    • $zahl ist kein numerischer Wert
    • $zahl enthält mehr als einen "Dezimalpunkt" (versuchs mal mit ner IP)
    • $len ist kein numerischer Skalar.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    [ Computer-Camp für PHP-Anwender in den Sommerferien. Programmieren,
      Sport, Fun, Fete. Teilnehmermindestalter Gruppe 1: 14 Jahre
      Mindestalter Gruppe 2+3 18 Jahre, Info bei mir ]
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen