FirebirdSQL logo

Types de données en virgule flottante

Les types de données à virgule flottante sont stockés au format binaire IEEE 754, qui comprend un signe, un exposant de puissance et une mantisse. Firebird a deux formes de types à virgule flottante:

  • Types numériques approximatifs (ou types binaires à virgule flottante)

  • Types décimaux à virgule flottante

Types numériques approximatifs

Les types numériques approximatifs à virgule flottante pris en charge par Firebird sont représentés par des types de précision simple 32 bits et des types à double précision 64 bits. Ces types sont disponibles avec les noms de type SQL standard suivants :

  • REAL — Précision unique 32 bits (synonyme de type FLOAT);

  • FLOAT — 32 bits à simple précision;

  • DOUBLE PRECISION — Double précision 64 bits ;

  • FLOAT(p), où p — est la précision en nombres binaires

    • 1 <= p <= 32 — précision unique 32 bits (synonyme du type FLOAT)

    • 33 <= p <= 53 — double précision 64 bits (synonyme du type DOUBLE PRECISION)

En outre, Firebird a des noms de type non standard:

  • LONG FLOAT — 64-double précision (synonyme de type DOUBLE PRECISION);

  • LONG FLOAT(p), où p — est la précision en nombres binaires. 1 ⇐ p ⇐ 53 — double précision 64 bits (synonyme du type DOUBLE PRECISION)

La précision de ce type FLOAT et DOUBLE PRECISION est dynamique, ce qui correspond au format de stockage physique,qui est de 4 octets pour le type FLOAT et de 8 octets pour le type DOUBLE PRECISION.

En raison de la nature du stockage des nombres à virgule flottante, il n’est pas recommandé d’utiliser ce type de données pour stocker des données monétaires. Pour les mêmes raisons, il n’est pas recommandé d’utiliser des colonnes contenant ce type de données comme clés ou de leur appliquer des restrictions d’unicité.

Lorsque vous vérifiez des données de colonne avec des types de données à virgule flottante, il est recommandé d’utiliser une expression de vérification de plage telle que BETWEEN au lieu de l’égalité exacte.

Lors de l’utilisation de tels types de données dans des expressions, il est recommandé d’adopter une approche extrêmement prudente et sérieuse de la question de l’arrondissement des résultats des calculs.