Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte
hier. Zur Startseite kommen Sie
hier.
Wertebereich Datentyp float
Hallo zusammen,
wenn ich in der Doku von MySQL nachlese, dann geht ein float mit 4 Byte vom Wertebereich her bis +3.4 * 10^38. Ich würde da gerne den Wert 50009912,2 z.B. speichern, was ja kleiner als die Obergrenze ist. Er speichert mir das dann in der Darstellung 5.00099e+07. Ich würde den Wert aber gerne nicht in expo-schreibweise in der db sehen. Kann mir da jemand weiterhelfen?
Danke und Gruß
linky29
Antworten
Float wird aber nunmal immer in Exponentialschreibweise gespeichert. So rechnet ein Rechner nach IEEE Standard mit Fließkommazahlen. Du kannst aber natürlich die Darstellung immer in deinem Programm ändern.
2.
Hallo Oliver,
danke für die Info, das wusste ich bis eben nicht. Du schreibst ich kann das in meinem Programm ändern? Meinst du damit eine Grundsätzliche config-Einstellung oder dass ich das im php-code umschreibe? Weil was mich ja auch noch wundert ist, dass der ja scheinbar aus einer 50009912,2 eine 5000991 macht also abschneidet...
Danke!
3.
Nein, ich meinte damit Du kannst das Format der Ausgabe bei der Ausgabe selbst bestimmen. Mit [doc]sprintf[/doc] zum Beispiel. Gespeichert wird die zahl weiterhin in Exponentialdarstellung.
Fließkommazahlen sind übrigens nicht beliebig genau, daher treten dort wie du bemerkt hast Rundungsfehler auf. Du könntest zum Beispiel double statt float benutzen - oder besser gleich decimal.
4.
Ah, ok werde ich versuchen. Ich hatte absichtlich kein double verwendet, da ich die Relation möglichst klein halten wollte (es sind 16 float Werte, also bei double gleich 64 byte pr Datensatz mehr). Aber wenn es nicht anders zu machen ist ... :)
Danke nochmals.