DM in Euro umrechnen und welchen Feldtyp dafür?

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

  • DM in Euro umrechnen und welchen Feldtyp dafür?

    Achtung: Anfänger!

    Hallo,

    1. Welchen Feldtyp in mySQL würdet Ihr für ein Preisfeld nehmen?

    2. Wie würdet Ihr - wenn wir in der Variable $preis den Preis in DM haben - gerundet auf 2 Nachkomma-Stellen in Euro umrechnen?


    Danke für Eure Tips!

  • #2
    Hi Chef,

    ich würde mir bei dem MySQL-Feld keine allzu große Gedanken machen. Aber wenn du sicher bist, das da immer Preise mit Kommastelle auftauchen, kannst du Typ Float nehmen. Bin mir nicht sicher, ob Double für deine Bedürfnisse auch geht. Zu Anfang tut's auch ein VARCHAR mit Größe 20 oder so. (Kannst du später auch nochmals ändern)

    Berechnung:

    $euro=round(($preis_in_dm/$umrechnungsfaktor),2);

    die 2 hinten gibt die Nachkommastellen an, auf die gerundet werden soll. Den Faktor kennst du sicher besser als ich. Ehrlich gesagt habe ich keine Ahnung. Ist nicht ganz die Hälfte, oder? Naja, aber egal, mit dem "Problem" kommst du sicher zurecht

    Kommentar


    • #3
      Hallo BrainBug,

      vielen Dank für Deinen Tip - hat wunderbar funktioniert (übrigens, der Umrechnungsfaktor ist 1.95583 !) - noch eine Frage:

      Nehmen wir mal an, ich habe eine Variable $preis die den Wert 6000 enthält, wie bekomme ich diese dann auf 6000,00 ?

      Nicht mit round, oder?

      Gruß
      Chef

      Kommentar


      • #4
        wenn dein DM-Preis 6000 ist, dann wird ja sicher der passende Euro-Preis eine Kommazahl sein.

        Ansonsten glaube ich nicht, daß round auf 2 Stellen nach dem Komma auch ,00 produziert, wenn es eine ganze Zahl ist.

        Mathematisch ist 6000,00 ja auch nicht korrekt, aber wenn du trotzdem den DM-Preis (oder auch Euro) auf dieses Format bringen willst, mußt du immer prüfen, ob der Wert ein Komma beinhaltet, ansonsten eben ein ,00 anhängen:

        $preis="6000";
        if (!strstr(",",$preis)) $preis.=",00"; // jetzt steht "6000,00" drin

        hoffe, ich konnte dir bißchen weiterhelfen

        Kommentar


        • #5
          Hallo!

          Mathematisch ist das sicherlich falsch, sieht aber besser aus

          Wenn man untereinander DM und Euro-Preis stehen hat, ist das irgendwie netter, wenn man:

          DM 3000.00
          € 1533.88

          stehen hat, anstelle das bei 3000 die Nachkomma-Stellen fehlen ...

          Wenn nun ein Preis bereits Nachkomma-Stellen besitzt, und ich logischerweise nur die ohne korrigieren möchte - wie denn das nun?

          Du hast mir schon verdammt gut geholfen - Danke!

          Kommentar


          • #6
            naja, die Abfrage mit (!strstr....) ist ja schon genau das, d.h. mit strstr() wird überprüft, ob ein Zeichen (nämlich das Komma) im Wert/String vorkommt. Wenn nicht (hierfür steht das Ausrufezeichen), dann wird die Anweisung hinter der If-Abfrage ausgeführt -> hier wird an die bestehende Variable einfach der Teilstring ",00" angehängt (".=" ist die Kurzform von $preis=preis.",00" )

            Eigentlich hast du jetzt alles, was du wolltest. Falls nicht, mußt du genauer werden oder mal dein Skript posten, damit man mehr sieht.

            Kommentar


            • #7
              man nehme

              $preis = str_replace ('.',',',sprintf ('%0.2f', $preis));

              Außerdem: Die DB und php sprechen englisch, also auf den PUNKT achten beim Schreiben und rechnen. ergo:

              $preiszumrechnen = sprintf ('%0.2f', $preis);
              $preis = str_replace ('.',',',$preiszumrechnen);
              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