Nicht-ganzzahlig
Synopse
Mit den nicht-ganzzahligen Datentypen (Fließkomma und Festkomma) können Sie nicht-ganzzahlige Zahlen angeben. Verschiedene Fließkomma-Datentypen repräsentieren unterschiedliche Präzisionszahlen.
Datentyp | Beschreibung | Dezimalgenauigkeit |
---|---|---|
FLOAT |
Inexakte 32-Bit-Gleitkommazahl | 7 |
DOUBLE |
Inexakt 64-Bit-Gleitkommazahl | 15 |
DECIMAL |
Beliebige Präzisionszahl | keine Ober-Grenze |
Syntax
Wo
- Spalten vom Typ
FLOAT
DOUBLE
DOUBLE PRECISION
, oderDECIMAL
können Teil desPRIMARY KEY
sein. -
DOUBLE
undDOUBLE PRECISION
sind Aliasnamen. -
non_integer_floating_point_literal
wird für Werte der TypenFLOAT
DOUBLE
undDOUBLE PRECISION
verwendet. -
non_integer_fixed_point_literal
wird für Werte vom TypDECIMAL
verwendet.
Semantik
- Werte verschiedener Gleitkomma- und Festkomma-Datentypen sind vergleichbar und ineinander konvertierbar.
- Die Konvertierung von Fließkomma-Typen in
DECIMAL
führt bei den SonderwertenNaN
Infinity
und-Infinity
zu einem Fehler.
- Die Konvertierung von Fließkomma-Typen in
- Werte von nicht-ganzzahligen numerischen Datentypen sind weder vergleichbar noch konvertierbar in Integer, obwohl Integer in sie konvertierbar sind.
- Die Reihenfolge für spezielle Fließkommawerte ist wie folgt definiert (in aufsteigender Reihenfolge):
-Infinity
, alle negativen Werte in Reihenfolge, alle positiven Werte in Reihenfolge,Infinity
undNaN
.
Beispiele
ycqlsh:example> CREATE TABLE sensor_data (sensor_id INT PRIMARY KEY, float_val FLOAT, dbl_val DOUBLE, dec_val DECIMAL);
ycqlsh:example> INSERT INTO sensor_data(sensor_id, float_val, dbl_val, dec_val) VALUES (1, 321.0456789, 321.0456789, 321.0456789);
Integer-Literale können auch verwendet werden (mit Upsert-Semantik zum Aktualisieren einer nichtexistierende Zeile).
ycqlsh:example> UPDATE sensor_data SET float_val = 1, dbl_val = 1, dec_val = 1 WHERE sensor_id = 2;
ycqlsh:example> SELECT * FROM sensor_data;
sensor_id | float_val | dbl_val | dec_val-----------+-----------+-----------+------------- 2 | 1 | 1 | 1 1 | 321.04568 | 321.04568 | 321.0456789
Siehe auch
- Datentypen