- Catégories :
TO_DOUBLE¶
Convertit une expression en un nombre à virgule flottante de double précision.
Pour NULL, le résultat est NULL.
- Voir aussi :
Syntaxe¶
TO_DOUBLE( <expr> [, '<format>' ] )
Arguments¶
expr
Expression de type numérique, caractère ou variante.format
Si l’expression renvoie une chaîne, la fonction accepte un modèle de format facultatif. Les modèles de format sont décrits à l’emplacement : Modèles de format SQL. Le modèle de format spécifie le format de la chaîne d’entrée, pas le format de la valeur de sortie.
Notes sur l’utilisation¶
Les nombres à virgule fixe sont convertis en virgule flottante ; la conversion ne peut pas échouer, mais peut entraîner une perte de précision.
Les chaînes sont converties en nombres décimaux entiers ou fractionnaires, la notation scientifique et les valeurs spéciales (nan, inf, infinity) sont acceptées.
Pour une entrée VARIANT :
Si la variante contient une valeur à virgule fixe, la conversion numérique est effectuée.
Si la variante contient une valeur à virgule flottante, la valeur sera conservée telle quelle.
Si la variante contient une chaîne, une conversion de chaîne sera effectuée.
Si la variante contient une valeur booléenne, le résultat sera 0 ou 1 (pour false et true, en conséquence).
Si la variante contient la valeur JSON null, le résultat sera NULL.
Notez que la conversion des fractions décimales en valeurs binaires et inverses n’est pas précise (c’est-à-dire que l’impression d’un nombre à virgule flottante converti à partir de la représentation décimale pourrait produire un nombre légèrement différent). Si une représentation précise des fractions décimales est requise, utilisez des nombres à virgule fixe.
Exemples¶
Après avoir créé une table avec des colonnes de types de données différents, ce script appelle TO_DOUBLE
sur chacune de ces colonnes :
CREATE TABLE double_demo (d DECIMAL(7, 2), v VARCHAR, o VARIANT); INSERT INTO double_demo (d, v, o) SELECT 1.1, '2.2', TO_VARIANT(3.14); SELECT TO_DOUBLE(d), TO_DOUBLE(v), TO_DOUBLE(o) FROM double_demo;Sortie :
+--------------+--------------+--------------+ | TO_DOUBLE(D) | TO_DOUBLE(V) | TO_DOUBLE(O) | |--------------+--------------+--------------| | 1.1 | 2.2 | 3.14 | +--------------+--------------+--------------+