Articles

Non entiers

Synopsis

Utiliser les types de données non entières (à virgule flottante et à virgule fixe) pour spécifier des nombres non entiers. Les différents types de données en virgule flottante représentent des nombres de précision différente.

.

Type de données Description Précision décimale
FLOAT Inexact 32-bit 7
DOUBLE Inexact 64-bit 15
DECIMAL Nombre à précision arbitraire pas de limite supérieure .

Syntaxe

  • Colonnes de type FLOATDOUBLEDOUBLE PRECISION, ou DECIMAL peuvent faire partie de la PRIMARY KEY.
  • DOUBLE et DOUBLE PRECISION sont des alias.
  • non_integer_floating_point_literal est utilisé pour les valeurs des types FLOATDOUBLE et DOUBLE PRECISION.
  • La non_integer_fixed_point_literal est utilisée pour les valeurs de type DECIMAL.

Sémantique

  • Les valeurs des différents types de données en virgule flottante et en virgule fixe sont comparables et convertibles entre elles.
    • La conversion de types à virgule flottante en DECIMAL soulèvera une erreur pour les valeurs spéciales NaNInfinity et -Infinity.
  • Les valeurs des types de données numériques non entiers ne sont ni comparables ni convertibles en entiers bien que les entiers soient convertibles en eux.

  • L’ordre pour les valeurs spéciales à virgule flottante est défini comme suit (par ordre croissant) : -Infinity, toutes les valeurs négatives dans l’ordre, toutes les valeurs positives dans l’ordre, Infinity, et NaN.

Exemples

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);

On peut également utiliser des littéraux entiers (Utilisation de la sémantique upsert pour mettre à jour une ligne nonexistante).

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

Voir aussi

  • Types de données

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *