Umgang mit Kommazahlen

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

  • 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
    Zuletzt geändert von 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]

    Kommentar


    • #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...

      Kommentar


      • #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]

        Kommentar


        • #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?
          Zuletzt geändert von Kabbelwasser; 08.02.2008, 22:09.

          Kommentar


          • #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]

            Kommentar


            • #7
              ähem....

              schönen Dank!

              Kommentar

              Lädt...
              X