Mailinglisten-Archive |
Hallo Martin,
>Weiterhin geht es mir zunaechst um den Typ FLOAT[(M,D)]. Um zu wissen,
>welchen NUMBER-Typ in Oracle ich in FLOAT umwandeln kann, muss ich
>wissen, wie sich M und D zueinander verhalten und wie sie den
>Fliesskommawert beeinflussen. Das Problem dabei ist, dass ich bisher
>nicht herausfinden konnte, wann die Fliesskommzahl gerundet wird und
>wann nicht. Welche Bedingungen dabei fuer M und D beachtet werden
>muessen. Hat hier jemand eine Idee?
Zuerst ein Verweis auf die Doku (evtl. umgebrochen).
http://www.mysql.de/documentation/mysql/bychapter/manual.de_Reference.ht
ml#Column_types
Hier werden unter anderem auch die Unterschiede zwischen der
Deklaration FLOAT(M) und FLOAT[(M,D)] erlaeutert. Wenn ich das richtig
verstanden habe, sind FLOAT[(M,D)] unechte Fliesskommazahlen, d.h. die
Werte werden unter Umstaenden gerundet. M gibt die maximale Anzahl an
Zeichen an und D die Anzahl der Dezimalstellen.
Beispiele fuer Rundungen:
Zahl Spalte Rundung
1.9876 FLOAT(5,2) 1.99
1.9876 FLOAT(5,3) 1.988
1.9876 FLOAT(6,4) 1.9876
Die Deklaration FLOAT(5,4) ist uebrigens nicht zulaessig, da D nicht
groesser als M-2 sein darf. Ist aufgrund der Vorkommastelle und des
Dezimalzeichens ja auch logisch.
Anders verhaelt sich die Definition als FLOAT(M), da es sich seit MySQL
3.23 um echte Fliesskommazahlen handelt. Hierbei hat FLOAT(4) eine
einfache und FLOAT(8) eine doppelte Genauigkeit, d.h. die Wertebereiche
liegen in diesen Bereichen:
Deklaration Maxwert Minwert
FLOAT(4) -/+3.402823466E+38 -/+1.175494351E-38
FLOAT(8) -/+1.7976931348623157E+308 -/+2.2250738585072014E-308
Vielleicht hilft dir dies ja schon etwas.
Gruss,
Ralf
--
_____________________________________________
In-Greece.de - die Griechenlandcommunity
_________ http://www.in-greece.de/ __________
--
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive