Nachkommastellen ungerundet

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

  • Nachkommastellen ungerundet

    Hallo,

    kann es sein, das PHP automatisch rundet? Verwende derzeit PHP 5.1.1 und möchte ein Nachkommastelle ungerundet ausgeben.
    Wenn ich zwei Nachkommastellen ausgebe lautet das Ergebenis 64,45. Bei einer Nachkommastelle logischerweise 64,5. Trotzdem möchte ich gern 64,4 ausgegeben haben.

    Mit folgenden Codes kommt immer wieder 64,5 raus.

    return round($size/(1024*1024),1);
    return printf("%.1f", ($size/(1024*1024)));
    return number_format($size/(1024*1024),1);

    Hat jmd. nen Tip für mich?

  • #2
    abend,

    wüsste nur das jetzt

    PHP-Code:
    $ZAHL 65.44;
    $EXP explode'.'$ZAHL );
    echo 
    substr$ZAHL0strlen($EXP[0])+); 
    es gibt aber sicherlich auch eine andere Möglichkeit !

    gruß SuRaXor

    Kommentar


    • #3
      Bei einer Nachkommastelle logischerweise 64,5. Trotzdem möchte ich gern 64,4 ausgegeben haben.
      Heisst das, dass du in jedem Falle abrunden willst. Also auch 64,99 auf 64,9 ?
      In diesem Falle kannst du ja einfach auf die Ausgabe des letzten Zeichens verzichten.
      PHP-Code:
      $res strval($dein_resultat);
      //so wird immer nur die erste Stelle nach dem . ausgegeben
      echo substr($res,0,strpos($res,'.')+1); 
      wäre so mein Vorschlag

      Gruss

      tobi
      Zuletzt geändert von jahlives; 25.07.2006, 00:26.
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        floor() könnte helfen, im Sinne von floor($zahl*10.0) / 10.0 .

        Dass etwas 64.45 und 64.5 gibt, ist nicht selbstverständlich. Wenn der wahre Wert etwa 64.452 beträgt, stimmt es. Aber der wahre Wert 64.448 würde bei Rundung auf 2 bzw. 1 Dezimalstellen 64.45 und 64.4 ergeben.

        Kommentar


        • #5
          Vielen Dank für eure Vorschläge, doch bringen alle leider nicht das gewünschte Ergebnis. Finde es doch irgendwie lächerlich, das PHP automatisch alles rundet und man nicht die Chance hat nur Kommestellen abzuschneiden. Welchen Sinn hat dann noch round()?

          Über weitere Vorschläge würde ich mich dennoch freuen.

          Kommentar


          • #6
            warum schneidet floor() nicht ab, bei Dir?

            kommt mir noch in den Sinn, Du hast das gewünschte Ergebnis nicht beschrieben. In diesem Sinne hier mein genauester Vorschlag:
            PHP-Code:
            echo '64,4'

            Kommentar


            • #7
              Original geschrieben von robftp
              Vielen Dank für eure Vorschläge, doch bringen alle leider nicht das gewünschte Ergebnis.
              Dann erkläre doch noch mal, was das gewünschte Ergebnis ist, wenn der floor-Vorschlag dieses angeblich nicht liefern soll.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Hast du vielleicht wirklich ein Komma zum Trennen genommen? PHP ist Englisch, da wird ein Punkt als Trennzeichen erwartet!

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar

                Lädt...
                X