string -> double

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

  • string -> double

    Folgenden String aus DB: 9,90


    Möchte ich in Double zur Berechnung umwandeln.

    PHP-Code:
    echo gettype($wertpreis);//Woher String
    echo $wertpreis;

    doubleval($wertpreis);
    echo 
    gettype($wertpreis);//auch String???
    echo $wertpreis

  • #2
    du hast das manual aber schon durchglesen?

    Kommentar


    • #3
      PHP-Code:
      $wertpreis "3.15";    
      echo 
      gettype($wertpreis);//String 
      echo $wertpreis
      settype($wertpreis,"double"); 
      echo 
      gettype($wertpreis);//jetzt Double
      echo $wertpreis

      Kommentar


      • #4
        @Benjy: Klasse idee, wenn man bedenkt, dass er ja eigentlich von 9,90 aus der DB ausgeht!!!

        mal kurz in google geschaut, ists gar kein Problem!

        Kommentar


        • #5
          Wooooops, hab ich überlesen... verstehe trotzdem net ganz wo überhaupt das Problem is....

          Kommentar


          • #6
            Danke Benjy!
            Aber ist nen Komma dazwischen das ist das Prob.

            Wenn ich es so mache gibt er mir ja nur die 9 zurück.
            PHP-Code:
            settype($wertpreis"Double"); echo gettype($wertpreis);
            echo 
            $wertpreis

            Kommentar


            • #7
              wundert dich das?

              Kommentar


              • #8
                machen wir doch einfach vorher ein str_replace(",",".",$wertpreis)...is wahrscheinlich unsauber, aber das is mir grad so eingefallen =) Vielleicht sollteste wirklich mal wie Tobias sagt danach googlen.....

                Kommentar


                • #9
                  Code:
                  UPDATE 
                    tabellenname
                  SET
                    preis=REPLACE(preis, ',', '.')
                  
                  ALTER TABLE 
                    tabellenname
                  MODIFY 
                    preis FLOAT
                  was hältst du davon?
                  EDIT:
                  neue werte musst du eben gleichrichtig reinschreiben, aber eventuell hast du ja das kommazeichen sowieso händisch ersetzt von . in ,
                  Zuletzt geändert von mrhappiness; 30.09.2003, 07:28.
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Double 9.8 aus DB in 9.80

                    Das mit dem "," haben wir ja erfolgreich gelöst. thx

                    Nun habe ich das Problem, das aus der DB nur 9.8 anstatt 9.80 ausgegeben wird,
                    wie kann ich prüfen, ob eine 0 gebraucht wird und wenn ja wie sie drangehängt wird?

                    Kommentar


                    • #11
                      number_format wird dein freund
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        lol ich hab mich schon gewundert, hatte vor dem Anruf doch was gepostet;-))))

                        Kommentar


                        • #13
                          Ich bin mehr für sprintf('%0.2f', $zahl)

                          Ich hab mal spaßeshalber eine Million Zahlen zwischen 0 und 100000
                          direkt in php.exe durch Schleifen laufen lassen

                          1) number_format($zahl, 2, '.', '')
                          2) number_format($zahl, 2)
                          3) sprintf('%0.2f', $zahl)

                          hier ein paar Laufzeitmessungen (alle Angaben in Sekunden)
                          8.537 - 8.310 - 7.821
                          8.938 - 8.549 - 7.870
                          8.604 - 8.289 - 7.635

                          Wenn du also nicht unbedingt das Komma als Trennzeichen haben willst,
                          ist sprintf etwa 10% schneller als number_format.
                          Durch das Weglassen von Parametern im Aufruf wird number_format zwar um 3-4% schneller, dann hat man aber u.U. Tausender-Trennzeichen drin.

                          Das Test-Skript gibt´s im Anhang (source als txt; da das Board php sinnvollerweise nicht zulässt).
                          Angehängte Dateien
                          Zuletzt geändert von Titus; 02.10.2003, 11:10.
                          mein Sport: mein Frühstück: meine Arbeit:

                          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                          Kommentar

                          Lädt...
                          X