[MySQL] Welcher Datentyp?

atlan428

Well-known member
ID: 43536
L
13 Mai 2006
269
10
Ich suche einen Datentyp der 9 Nachkommastellen und 9 Zeichen vor dem Komma haben kann. Welcher Datentyp kommt dafür in Frage?

Wenn ich Float benutze, dann gehen meine Rechenoperationen höchstens bis 7 Nachkommastellen. Mit Double scheint es einwandfrei zu funktionieren. Gibt es aber keinen Datentyp, der weniger Speicher verbraucht?
 
Im Prinzip hast du nur 2 Möglichkeiten:
DOUBLE und DECIMAL

Kleine Rechnung (s. Manual):
DOUBLE: 8 Bytes
DECIMAL(18,9): (18/9)*4 = 8 Bytes

Vom Speicherplatz ist es egal und die Rechnung von DOUBLE mit dem IEEE-Standard kann dir auch egal sein, da erst ab der 15.Stelle Genauigkeit verloren geht.
 
Float kann ich also vergessen? Ich hatte schon befürchet das in meinem PHP-Script ein Fehler ist.

Edit:
Was bedeutet die 8-Bit-Speicherverbrauch eigentlich? Kann man das vernachlässigen oder entstehen dadurch Nachteile?
 
Float kann ich also vergessen?
Wenn du absolut genau rechnen musst, dann ja. FLOAT kann nur bis zur 7.Stelle genau rechnen. Das hängt mit der IEEE 754-Codierung zusammen.
Edit:
Was bedeutet die 8-Bit-Speicherverbrauch eigentlich? Kann man das vernachlässigen oder entstehen dadurch Nachteile?
Welche 8 Bit ? :think:

Meinst du die 8 Bytes ? Das ist der Speicherplatz, den du brauchst, um eine Zahl diesen Typs abzuspeichern. Hast du also in deiner Datenbank z.B. 131072 solcher Zahlen, schluckt der Datenbereich genau 1 MB.
Nachteile ? Naja, ich nehm an, du hast nur begrenzt Speicherplatz :mrgreen:
 
Upps, ich meinte natürlich 8 Byte! :)

In meiner Datenbank stehen maximal 20 solcher Zahlen. Vielen Dank für deine Hilfe!