Zahlenformatierung

lisali

Erfahrenes Mitglied
Hallo,

ich habe ein Problem mit der Zahlenformatierung. Ich möchte, dass eine Zahl in diesem Format ausgegeben wird:

"00,00"

Und das IMMER, auch wenn die Zahl 11 lautet. Das wäre dann: 11,00
Oder bei 6,5 wäre es dann: 06,50

usw...

Was muss da meine SQL-Spalte für einen Typ haben und was wären die optimalen Werte wenn die Zahl maximal 5 Stellen hätte (OHNE Nachkommastellen)?

Danke im Voraus!

LG,

Lisa
 
Zuletzt bearbeitet:
Moin,

was meinst Du denn genau :confused:
Sollen die Werte SO in der Tabelle stehen (also "06,50") ? Das wird kaum gehen und macht auch keinen Sinn!

Oder meinst Du irgendeine Ausgabe (welche?) ? ? ?

Mit welchem DBS resp. SQL arbeitest Du denn ?

Gruß
Klaus
 
FORMAT und LPAD sind dein Freund, solltest du mit MySQL arbeiten, wovon ich jetzt mal ausgehe, da du dazu keine Aussage getroffen hast. Wobei es natürlich einfacher mit PHP zu lösen wäre (siehe [phpf]printf[/phpf]).
 
Zuletzt bearbeitet:
Entschuldigung. Das habe ich wohl vergessen zu erwähnen. Ich meine MySQL.

Und die Formatierung habe ich jetzt mit PHP hinbekommen und jetzt geht es mir hauptsächlich nur noch um die richtige "Art" (oder wie nennt man diesen Fachbegriff nochmal für MySQL?) der Spalte.
Also ich schätze eins von REAL, FLOAT oder DOUBLE sollte es sein, oder gibt es da noch mehr?

Nur was passt für meinen Fall am Besten, wenn ich so ziemlich immer 2 Nachkommastellen habe und die Gesamtzahl bis maximal 99 999 geht (ohne Nachkommastelle gemeint)?

Liebste Grüße,

Lisa
 
Moin,

ach zu der Frage hilft die oben bereits erwähnte Doku weiter: http://dev.mysql.com/doc/refman/5.1/en/numeric-type-overview.html

Im wesentlichen unterscheiden sich die Typen nur im Wertebereich!
Ich würde im übrigen nicht drauf drängen, Deine 6,5 als 06,50 zu speichern! Über die Anzahl NK-Stellen kann ja vlt. noch diskutieren (zuumal hier ggf. dir Rundung ins Spiel kommt), aber die führende Null ist wirklich Blödsinn!

Wenn Du diese Darstellung auf irgendwelchen Ausgaben (Ausdrucken oder was auch immer) so brauchst, dann solltest dort formatieren!

Die reine Datenhaltung hat an sich nix mit der externen Darstellung zu tun!

Gruß
Klaus
 
Wenn dein Zahlenbereich bis 99.999 geht reicht FLOAT mit seinem Bereich von -3.402823466E+38 bis 3.402823466E+38 wohl mehr als ausreichend :)

Edit Zu langsam, mist :D
 
Moin,

ach zu der Frage hilft die oben bereits erwähnte Doku weiter: http://dev.mysql.com/doc/refman/5.1/en/numeric-type-overview.html

Im wesentlichen unterscheiden sich die Typen nur im Wertebereich!
Ich würde im übrigen nicht drauf drängen, Deine 6,5 als 06,50 zu speichern! Über die Anzahl NK-Stellen kann ja vlt. noch diskutieren (zuumal hier ggf. dir Rundung ins Spiel kommt), aber die führende Null ist wirklich Blödsinn!

Wenn Du diese Darstellung auf irgendwelchen Ausgaben (Ausdrucken oder was auch immer) so brauchst, dann solltest dort formatieren!

Die reine Datenhaltung hat an sich nix mit der externen Darstellung zu tun!

Gruß
Klaus

Danke, das leuchtet auf jeden Fall ein, vielen Dank!

An mAu:

Was für eine Länge/Set wäre denn mit FLOAT optimal für meine Verwendung? Also bei einer Zahl von maximal 9 999 ?
 
Moin,

das ist doch im Prinzip völlig egal, solange Deine Werte innerhalb des angegebenen Wertebereiches bleiben !!

Das Einzige was Du ggf. verschwendest ist ein bisschen DB-Platz. Also nimm' einfach den Typ mit dem kleinsten Wertebereich, der Deinen Anforderungen (= Zahlen) entspricht!

Wenn Du dann "6,5" speicherst, ist es völlig [EDIT: egal], ob Du theoretisch auch "3.402823466E+38" hättest speichern können !!

Eine Typ "double" habe ich eben übrigens so auf die Schnelle bei MySQL nicht gefunden ...

Gruß
Klaus
 
Hallo Lisa

sorry, ich kenne MySQL leider nicht, aber dann scheint es ja DOUBLE doch zu geben :rolleyes:

Unter Deinem Link findest Du aber auch den entscheidenen Satz
Die Datentypen FLOAT und DOUBLE sind Fließkommatypen. DECIMAL-Spalten speichern Werte mit einer exakten Anzahl Stellen, weil sie als Strings dargestellt werden.
Also ist die Datenhaltung von DECIMAL anders und dürfte hier (vermutlich) ausscheiden!

Wenn Du also FLOAT wählst bist mit dem von Dir genannten Zahlenbereich mehr als auf der sicheren Seite!

Wo soll denn nun im Endeffekt "06,50" zu sehen sein ? ? ?

gruß
Klaus
 

Neue Beiträge

Zurück