FLOAT und DOUBLE PRECISION

<< Feld | IBExpert Glossar | Forced Writes (Synchrones Schreiben) >>

FLOAT und DOUBLE PRECISION

FLOAT-Datentypen werden verwendet, um Werte mit signifikanten Dezimalstellen zu speichern. Die folgenden FLOAT-Typen werden unterstützt:

TypGrößeWerte-Bandbreite
Float4 Bytes7 signifikante Dezimalzahlen; -3,4 x 10^-38 to 3,4 x 10^38
Double Precision8 Bytes15 signifikante Dezimalzahlen; -1,7 x 10^-308 to 1,7 x 10^308

Eine Spalten mit dem definierten Datentyp FLOAT kann eine Gleitkommazahl mit einfacher Genauigkeit (32-Bit) mit bis zu 7 signifikanten Dezimalstellen speichern. Das Dezimalkomma kann zwischen allen diesen sieben Ziffern gleiten. Wenn eine Zahl mit mehr als 7 Stellen gespeichert werden muss, werden Dezimalzahlen nach der siebenten Stelle abgeschnitten. FLOAT-Spalten benötigen 4 Bytes Speicherplatz.

Eine Spalte mit dem definierten Datentyp DOUBLE PRECISION kann Zahlen mit 15 signifikanten Dezimalstellen speichern. Hierfür werden 8 Bytes Speicherplatz benötigt. As with the FLOAT column, the decimal point can float within the column. The DOUBLE PRECISION datatype is implemented in the majority of InterBase® platforms as a 64 bit number.

FLOAT-Typen können für jede Rechenoperation implementiert werden. Sie bieten eine optimale Leistung und eine ausreichende Bandbreite an Werten. Das Anzeigenformat eines FLOAT-Feldes kann unter Programmeinstellungen / Gitter / Anzeigformat.

Der Datentyp DOUBLE PRECISION kann wie folgt geschrieben werden:

 DOUBLE PRECISION
 DOUBLE

Der Hauptvorteil eines DOUBLE PRECISION-Datentyps ist die große Anzahl an Dezimalstellen, z.B. wäre 1/3 in DOUBLE PRECISION 0,33333333333333 in NUMERIC(18,4) wären es 0,3333. Bitte beachten Sie: bis zum Dialekt 1 waren NUMERIC und DOUBLE PRECISION identisch, d.h. an SQL mit dem Datentyp NUMERIC(15,2) führt zu folgendem:

Ergebnis mit Dialekt 1:

 CREATE TABLE TEST(WERT NUMERIC(15,2));
 INSERT INTO TEST(WERT) VALUES(100);
 SELECT * FROM TEST;  result 100
 UPDATE TEST SET WERT=WERT/3;
 SELECT * FROM TEST;  result 33,33
 UPDATE TEST SET WERT=WERT*3;
 SELECT * FROM TEST;  result 100

Ergebnis mit Dialekt 3:

 CREATE TABLE TEST(WERT NUMERIC(15,2));
 INSERT INTO TEST(WERT) VALUES(100);
 SELECT * FROM TEST;  result 100
 UPDATE TEST SET WERT=WERT/3;
 SELECT * FROM TEST;  result 33,33
 UPDATE TEST SET WERT=WERT*3;
 SELECT * FROM TEST;  result 99,99

Seit der Einführung von Dialekt 3 werden NUMERIC-Daten entsprechend der kaufmännischen Rundungsregeln gerundet; bis zum Dialket 1 werden NUMERIC-Daten nach den Regeln der technischen Rundung gerundet.

Siehe auch:
deutschsprachig:
Tabelleneditor
SQL Editor
englischsprachig:
Data types and subtypes
Selecting the right data type to improve database performance
Firebird 2.1 Language Reference Update
Firebird 2.0 Language Reference Update
SQL Language Reference

zurück zum Seitenanfang
<< Feld | IBExpert Glossar | Forced Writes (Synchrones Schreiben) >>