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
FLOATDOUBLEDOUBLE PRECISION, lubDECIMALmogą być częściąPRIMARY KEY. -
DOUBLEiDOUBLE PRECISIONsą aliasami. -
non_integer_floating_point_literaljest używany dla wartości typówFLOATDOUBLEiDOUBLE PRECISION. -
non_integer_fixed_point_literaljest 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
DECIMALspowoduje podniesienie błędu dla wartości specjalnychNaNInfinity, 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