Constantes numériques

Une constante numérique est un nombre valide dans l'une des notations prises en charge :

  • En SQL, pour les nombres en notation décimale standard, le point décimal est toujours représenté par un caractère de point et les milliers ne sont pas séparés. L'inclusion de virgules, d'espaces, etc. entraînera des erreurs.

  • Notation exponentielle, par exemple le nombre 0.0000234 peut être écrit comme 2.34e-5.

  • La notation hexadécimale (voir ci-dessous) des nombres est supportée à partir de Firebird 2.5.

Le tableau suivant présente les formats des littéraux numériques et leurs types. Où <d> est un chiffre décimal, <h> est un chiffre hexadécimal.

Table 1. Format des constantes numériques
FormatType

<d>[<d> ..]

INTEGER, BIGINT, INT128 ou DECFLOAT(34) (dépend du fait que la valeur corresponde ou non au type de). DECFLOAT(34) est utilisé pour les valeurs qui ne rentrent pas dans le type INT128.

0{x|X} <h>[<h> ..]

INTEGER pour les chiffres hexadécimaux de 1 à 8, BIGINT pour les chiffres de 9 à 16, INT128 pour les chiffres de 17 à 32 (disponible avec Firebird 4.0.1).

<d>[<d> ..].[<d> ..]

NUMERIC(18, n), NUMERIC(38, n) ou DECFLOAT(34)n dépend du nombre de chiffres après la virgule et la précision du nombre total de chiffres.

Pour des raisons de compatibilité ascendante, certaines valeurs à 19 chiffres sont mappées en NUMERIC(18, n). DECFLOAT(34) est utilisé lorsque la valeur non scalée ne tient pas dans INT128.

<d>[<d> ..][. [<d> ..]] E <d>[<d> ..]

DOUBLE PRECISION ou DECFLOAT(34), où DECFLOAT n'est utilisé que si le nombre de chiffres est égal ou supérieur à 20, ou si la valeur absolue de l'exposant est égale ou supérieure à 309.