kaufmännisches Runden

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

  • kaufmännisches Runden

    Gibt es denn in Php keine Funktion, die kaufmännisch rundet?

    in meinem Skript multipliziere ich den Preis mit dem Rabatt und will dann einen Wert, wie z.B. 3.555 auf 3.56 runden, aber bei round(3.555,2) kommt 3.55 raus!!! Naja geht na immer nur um einen Cent, aber trotzdem.
    Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

    um so schlimmer für die Tatsachen.

  • #2
    Also round sollte normalerweise so runden....von 0 bis 4 ab, und ab 5 auf.....

    Wenn du immer aufrunden willst, mach das mit ceil, immer abrunden soviel ich weiß mit floor......
    http://www.freehost-script.com

    Werden Sie Webhoster, mit Werbung auf den Userseiten, Php, Mysql, FTP

    Kommentar


    • #3
      probier mal
      PHP-Code:
      echo number_format(3.5552); 
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        round() ist die korrekte Funktion ... und bei mir kommt auch sauber 3.56 heraus ... !

        Welche PHP-Version??
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          PHP Version 4.0.6

          Vielleicht ist ja was an meiner Rechnung flasch:
          Code:
          echo number_format( $got['GK_PREIS'] * ( 1 - ($HTTP_SESSION_VARS['rabatt'] / 100)),2);
          
          also:
          
          echo number_format( 5.25 * 62 / 100, 2)
          Zuletzt geändert von Winner; 04.04.2003, 16:14.
          Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

          um so schlimmer für die Tatsachen.

          Kommentar


          • #6
            und wo steht da was von round?

            mach mal ein echo ($got['GK_PREIS'] * ( 1 - ($HTTP_SESSION_VARS['rabatt'] / 100)));
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              kommt 3.255 raus, das will ich eben auf 3.26 runden, aber selbst bei round(3.255,2) bekomm ich 3.25 raus
              Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

              um so schlimmer für die Tatsachen.

              Kommentar


              • #8
                dann lass es runden und zähle einfach 1 cent dazu.

                Kommentar


                • #9
                  Dann solltest Du Deinen Rechner mal neu installieren ... round() schleift schlichtweg die round()-Funktion Deiner C-Library durch ... <ironic>und ich halte es für sehr wahrscheinlich das die einen Bug hat</ironic>
                  carpe noctem

                  [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                  [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                  Kommentar


                  • #10
                    Ja das wär ne Möglikeit, wenn mein Skript immer ein Cent zuwenig berechnen würde, aber manchmal kommt halt auch 3.451 => 4.45 raus und das stimmt dann wieder
                    Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

                    um so schlimmer für die Tatsachen.

                    Kommentar


                    • #11
                      du bist lustig ich fahr einfach mal den Webserver für ~50 Firmen runter, weil mein Skript nicht richtig rundet, ich installier grad die neuste Version von PHP, mal sehen, ob es dann funktioniert
                      Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

                      um so schlimmer für die Tatsachen.

                      Kommentar


                      • #12
                        dann addiere doch 0,5 drauf und benutze dann floor()
                        evtl. noch durch vorherige multiplikation und anschliessende division durch zehner-potenzen für die gewünschten nachkommastellen sorgen...

                        ;-)
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          nicht die Optimallösung, aber so funktionierts, danke
                          Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

                          um so schlimmer für die Tatsachen.

                          Kommentar

                          Lädt...
                          X