Umgang mit Kommazahlen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Umgang mit Kommazahlen

    Hallo,

    ich habe ein Problem mit einem Skript, das Zahlen automatisch folgendermaßen formatiert

    nach der 1000er Stelle ein Komma
    nach der 1er Stelle ein Punkt

    Das ist ja quasi die amerikanische Zahlenformatierung, also im Vergleich zum Deutschen sind Komma und Punkte vertauscht.

    Mein Problem: Ich möchte von der Zahl 3 % abziehen und mache das ganz einfach so:

    PHP Code:
    $rabatt $urspruengliche_zahl 0.97
    Das klappt soweit ganz gut, aber nicht mit Zahlen über 1000. Da kommen ganz seltsame Ergebnisse raus, die ich rechnerisch gar nicht nachvollziehen kann, z. B. wird 1.94 aus 2,178.65 .

    Hat jemand einen Vorschlag? Z. B. eine Funktion, die das Komma aus dem Ding entfernt?

    Danke vorab,
    Kabbelwasser
    Last edited by Kabbelwasser; 08-02-2008, 21:47.

  • #2
    Hat jemand einen Vorschlag? Z. B. eine Funktion, die das Komma aus dem Ding entfernt?
    Das Problem liegt doch offensichtlich in deinem Code oder? Warum brauchst du überhaupt ein Skript um die Zahlen so zu formatieren? Bei der Ausgabe benutzt du number_format - und auch nur da. PHP kann beim rechnen mit solchen Strings natürlich nichts anfangen.
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Comment


    • #3
      Es geht um einen OsCommerce Shop, und da will ich ungern irgendwo noch in Funktionen herumschreiben, weil ich damit sicherlich an anderer Stelle was kaputt mache. Kann ja mal den code posten:


      PHP Code:
       $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) 
      Offensichtlich ist da irgendwo die Zahlenformatierung hinterlegt, und eine eigene MySQL Abfrage bekomme ich nicht hin, sonst könnte ich auch einfach die unformatierte Zahl direkt aus der DB holen und die 3 % abziehen...

      Comment


      • #4
        PHP Code:
        $listing['specials_new_products_price'
        Du hast doch hier den Preis?
        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

        Comment


        • #5
          Ja schon, und das mache ich dann so:

          PHP Code:
          $vkr1_preis $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id']))*0.97
          Dabei kommt dann so ein Ergebnis raus (schau auf den Vorkasse-Preis bei den Geräten unten, wo der Preis über 1000 EUR liegt):

          [URL entfernt ]

          Komisch, oder?
          Last edited by Kabbelwasser; 08-02-2008, 22:09.

          Comment


          • #6
            So jetzt überlegst du noch mal wo der Originalpreis ist und wo du deine Rechnung durchführst. Und dann stellst du das entsprechend um. Und das nächste mal sagst du gleich was du willst und tust nicht erst so als ob du weißt was du tust.
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Comment


            • #7
              ähem....

              schönen Dank!

              Comment

              Working...
              X