Ankündigung

Einklappen
Keine Ankündigung bisher.

Rundungsfehler

Einklappen

Neue Werbung 2019

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

  • Rundungsfehler

    Hallo!
    Ich hab da ein kleines Problem mit einem PHP-Skript von mir und der round() funktion!

    Bei round(5.055,2) wird wie erwartet 5.06 ausgegeben!
    Aber wenn ich round(4.895,2) eingebe wird 4,89 ausgegeben! Sollte das nicht aufgerundet werden auf 4,90?

    Das Problem konnte ich bei den PHP-Versionen 5.2.6 und 5.2.5 feststellen (habe nur die 2 installiert)!

    Hoffe von euch kann mir jemand helfen... bin schon am verzweifeln
    mfg

  • #2
    was sind das denn für werte?!
    5.055,2 = Fünftausend-fünfundfünfzig Komma Zwei
    oder Fünf Komma Null Fünf Fünf Zwei

    Kommentar


    • #3
      Die round() funktion erwartet 2 Werte:
      5.055 ist die Zahl
      2 ist die Anzahl an Nachkommastellen

      bitte zuerst mal den funktions-prototypen ansehen bevor ihr postet

      Kommentar


      • #4
        Zitat von Freeaak Beitrag anzeigen
        was sind das denn für werte?!
        5.055,2 = Fünftausend-fünfundfünfzig Komma Zwei
        oder Fünf Komma Null Fünf Fünf Zwei
        Nein, das sind ganz normale Kommazahlen...und ein Aufruf von round mit der 2 als zweiten Parameter


        Aber wirklich sehr dubios das Verhalten.
        Vor allem, dass es nur bei einigen Zahlen auftritt:

        Code:
        $float = 0.895;
        while($float <10000)
        {
            $round = round($float, 2);
            if($round < $float)
            {
                echo " <br />". $float . " => " . $round;
            }
            $float +=1;
        }
        Ergebnis:
        4.895 => 4.89
        32.895 => 32.89
        33.895 => 33.89
        34.895 => 34.89
        35.895 => 35.89
        36.895 => 36.89
        37.895 => 37.89
        38.895 => 38.89
        39.895 => 39.89
        40.895 => 40.89
        128.895 => 128.89
        129.895 => 129.89
        130.895 => 130.89
        131.895 => 131.89
        132.895 => 132.89
        133.895 => 133.89
        134.895 => 134.89
        135.895 => 135.89
        136.895 => 136.89
        137.895 => 137.89
        138.895 => 138.89
        139.895 => 139.89
        140.895 => 140.89
        141.895 => 141.89
        142.895 => 142.89
        143.895 => 143.89
        144.895 => 144.89
        145.895 => 145.89
        146.895 => 146.89
        147.895 => 147.89
        148.895 => 148.89
        149.895 => 149.89
        150.895 => 150.89
        151.895 => 151.89
        152.895 => 152.89
        153.895 => 153.89
        154.895 => 154.89
        155.895 => 155.89
        156.895 => 156.89
        157.895 => 157.89
        158.895 => 158.89
        159.895 => 159.89
        160.895 => 160.89
        161.895 => 161.89
        162.895 => 162.89

        Ist mir bisher noch nie untergekommen

        Kommentar


        • #5
          Zitat von Eprom Beitrag anzeigen
          bitte zuerst mal den funktions-prototypen ansehen bevor ihr postet
          gnarf hatte ich ... aber keine ahnung wieso ich deine parameter so seltsam interpretiert habe

          Kommentar


          • #6
            ROFL
            ich glaub ich seh nicht recht
            da haben wir wohl einen bug entdeckt... werde das mal auf php.net posten

            thx für die schnelle antwort!

            @freak kein problem... man kann sich ja mal verlesen

            Kommentar


            • #7
              Immer langsam. D In den "user contributed notes" zu round() im Manual gibt es einen Hinweis was es mit dem ganzen auf sich haben könnte. (der von php-rookie).

              Kommentar


              • #8
                k... werds mir gleich ansehen

                Kommentar

                Lädt...
                X