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 typeFLOAT
); -
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 typeDOUBLE PRECISION
); -
LONG FLOAT(p)
, où p — est la précision en nombres binaires. 1 ⇐ p ⇐ 53 — double précision 64 bits (synonyme du typeDOUBLE 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.