ms-88: MYSQL - FORMAT - Bug?

Hi,

ich möchte gerne Werte auf 2 Dezimalstellen runden/anzeigen lassen.

Dazu hab ich ein Feld mit Type double dort steht zb 1.8 drinnen.

Jetzt seletiere ich über FORMAT(feld, 2)

Es funktioniert bei ca. 90% der Fälle, aber bei einigen Datensätzen rundet er auf 0.00

zB.: wird 0.75 zu 0.00

Jemand eine Idee warum?

lg

  1. Moin!

    Jetzt seletiere ich über FORMAT(feld, 2)

    Es funktioniert bei ca. 90% der Fälle, aber bei einigen Datensätzen rundet er auf 0.00

    zB.: wird 0.75 zu 0.00

    Jemand eine Idee warum?

    Du meinst:
    SELECT FORMAT(0.75, 2);
    -> 0.00

    Abgesehen davon, dass ich leider gerade keine Datenbank zum Ausprobieren zur Hand habe, hätte ich persönlich diese Funktion nicht verwendet, weil sie nur die amerikanische Zahlendarstellung mit einem Punkt als Dezimaltrenner und Kommas als Tausendertrenner kennt (sagt die Doku). Das ist nicht ganz so geeignet im deutschen Sprachraum. Ich würde die Zahlenausgabe nicht im Query formatieren, sondern bei der Ausgabe im Template.

    Wenn es dir um das Runden geht: ROUND() existiert und rundet, statt zu formatieren. TRUNCATE() schneidet Stellen ab, ohne zu runden.

    http://dev.mysql.com/doc/refman/5.1/de/mathematical-functions.html

    - Sven Rautenberg

    1. Hello,

      Jetzt seletiere ich über FORMAT(feld, 2)

      Bei mir funktioniert das.

      MySQL 5.0.51a-24+lenny2-log
      Abfrage mit Heidi 6.0.0.3603

      muss ich beides mal updaten...

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de