Problem mit number_format bzw. sprintf

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

  • Problem mit number_format bzw. sprintf

    hi...

    in der folgenden funktion möchte ich zum bsp. aus dem wert 0.2 -> 0.20
    machen.

    habe es zuerst mit number_format versucht und nun mit sprintf aber nix tut sich

    wo liegt mein fehler?

    PHP-Code:
    function sumArticle($id$kID)

        {

            
    $_SESSION['basket'][$id][$kID]['summe'] += $this -> preis;

            return 
    sprintf("%.2f"$_SESSION['basket'][$id][$kID]['summe']);
            
    //return number_format($_SESSION['basket'][$id][$kID]['summe'],2);

        


  • #2
    definiere nix tut sich
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Original geschrieben von Abraxax
      definiere nix tut sich
      also der wert wird immer noch als 0.2 angezeigt und nict wie ich es will 0.20

      Kommentar


      • #4
        hast du das auch mal ganz alleine getestet?

        das klappt nämlich einwandfrei ....
        PHP-Code:
        <?php

            $zahl 
        105150.5;

            echo 
        sprintf("%.2f"$zahl);
            echo 
        '<br />';
            echo 
        number_format($zahl2);

        ?>

        ... nicht das der fehler woanders ist, was ich eher denke.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          ich habs vorher mal allein getestet und da hat es funktioniert und ich versteh nicht warum es nicht funktioniert.

          woran könnte es noch liegen?

          hier mal noch die funktionen wo evtl. noch der fehelr liegen könnte:

          PHP-Code:
          function addArticle($id,$menge,$kID, &$db)
          {

          //Code

          $this -> preis $menge*$row['preis'];
          //Code

          $this -> sumArticle($id,$kID);

          //Code

          }

          function 
          sumArticle($id$kID)

              {

                  
          $_SESSION['basket'][$id][$kID]['summe'] += $this -> preis;

                  return 
          sprintf("%.2f"$_SESSION['basket'][$id][$kID]['summe']);

              } 

          Kommentar


          • #6
            PHP-Code:
            $this -> sumArticle($id,$kID); 
            schöner aufruf. aber wo ist hier die wertzuweisung?
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Original geschrieben von Abraxax
              PHP-Code:
              $this -> sumArticle($id,$kID); 
              schöner aufruf. aber wo ist hier die wertzuweisung?
              ich wollte ja eigentlich in der zeile nur die summe zurückgeben, sie wird ja in der unteren funktion ausgerechnet

              Kommentar


              • #8
                Original geschrieben von lx-club
                sie wird ja in der unteren funktion ausgerechnet
                das sehe ich.


                Original geschrieben von lx-club
                ich wollte ja eigentlich in der zeile nur die summe zurückgeben,
                aber du weisst den zurückgegebenen wert nirgens zu ....
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  hmm...

                  wenn ich den wert so zuweise:

                  $_SESSION['basket'][$id][$kID]['summe'] = $this -> sumArticle($id, $kID)

                  aber da brauchte ich die extra funktion ja auch nicht oder?

                  Kommentar


                  • #10
                    Original geschrieben von lx-club
                    aber da brauchte ich die extra funktion ja auch nicht oder?
                    tja. wie man es nimmt.

                    derzeitig rechnest du eine summer zum preis.
                    dann gibst du einen formatierten string-wert zurück und machst nichts damit.

                    alternative.

                    mache die wertzuweisung in der methode direkt.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      also habs jetzt so gemacht:

                      PHP-Code:

                      function addArticle($id,$menge,$kID, &$db)
                      {

                      //Code

                      $this -> preis $menge*$row['preis'];
                      //Code

                      $_SESSION['basket'][$id][$kID]['summe'] += $this -> preis;

                      //Code


                      jetzt hab ich aber dasselbe problem, ich bekomm immer nur 0.2 angezeigt anstatt 0.20

                      Kommentar


                      • #12
                        jetzt hab ich gefunden warum es nicht geht, aber kann mir nicht erkläre nwarum:

                        $_SESSION['basket'][$id][$kID]['summe'] += number_format($this -> preis,2); --> so gehts nicht, aber

                        $_SESSION['basket'][$id][$kID]['summe'] = number_format($this -> preis,2); --> so gehts, wenn ich anstatt += nur = schreibe, aber das nützt mir ja nix, da ich ja nun en falschen wert erhalte

                        Kommentar


                        • #13
                          schaue mal was number_format() zurück gibt. genau. einen string. und einen string kannst du nicht addieren, weil es keine zahl ist.

                          tipp: lass in der class alles als zahl laufen. nur für die ausgabe später, machst du daraus einen formatieren string.
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            hi...

                            also jetzt funktionierts.

                            PHP-Code:
                            function addArticle($id,$menge,$kID, &$db)
                            {

                            //Code...

                            $this -> preis $menge*$row['preis'];
                                    
                                    
                            $this -> menge $menge;
                                    
                                    
                            $_SESSION['basket'][$id][$kID]['menge'] += $menge;
                                    
                                    
                            $_SESSION['basket'][$id][$kID]['summe'] += $this -> preis;
                                    
                                    
                            $_SESSION['basket'][$id][$kID]['summe'] =
                             
                            number_format($_SESSION['basket'][$id][$kID]['summe'],2);
                                    return 
                            true;} 
                            Zuletzt geändert von lx-club; 21.06.2004, 12:10.

                            Kommentar


                            • #15
                              siehst du ... war doch ganz einfach ...
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X