Non-integer
Synopsis
Użyj typów danych non-integer (zmiennoprzecinkowych i stałoprzecinkowych), aby określić liczby niebędące liczbami całkowitymi. Różne zmiennoprzecinkowe typy danych reprezentują liczby o różnej precyzji.
Typ danych | Opis | Precyzja dziesiętna |
---|---|---|
FLOAT |
Inexact 32-.bitowa liczba zmiennoprzecinkowa | 7 |
DOUBLE |
Inexact 64-bitowa liczba zmiennoprzecinkowa | 15 |
DECIMAL |
Liczba arbitralnie precyzyjna | brak górnegobound |
Syntaktyka
Gdzie
- Kolumny typu
FLOAT
DOUBLE
DOUBLE PRECISION
, lubDECIMAL
mogą być częściąPRIMARY KEY
. -
DOUBLE
iDOUBLE PRECISION
są aliasami. -
non_integer_floating_point_literal
jest używany dla wartości typówFLOAT
DOUBLE
iDOUBLE PRECISION
. -
non_integer_fixed_point_literal
jest używany dla wartości typuDECIMAL
.
Semantyka
- Wartości różnych typów danych zmiennoprzecinkowych i stałoprzecinkowych są porównywalne i wymienialne między sobą.
- Konwersja z typów zmiennoprzecinkowych do
DECIMAL
spowoduje podniesienie błędu dla wartości specjalnychNaN
Infinity
, i-Infinity
.
- Konwersja z typów zmiennoprzecinkowych do
- Wartości liczbowych typów danych niebędących liczbami całkowitymi nie są ani porównywalne, ani przeliczalne na liczby całkowite, chociaż liczby całkowite są na nie przeliczalne.
- Porządek dla specjalnych wartości zmiennoprzecinkowych jest zdefiniowany jako (w porządku rosnącym):
-Infinity
, wszystkie wartości ujemne w kolejności, wszystkie wartości dodatnie w kolejności,Infinity
, orazNaN
.
Przykłady
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);
Integry literalne mogą być również użyte (Użycie semantyki upsert do aktualizacji nieistniejącego wiersza).nieistniejący wiersz).
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
Zobacz także
- Typy danych