OVH Cloud OVH Cloud

addition de valeur finis : resultat exponentiel

1 réponse
Avatar
Symon
Lorsque j'aditione ou que je soustrait des valeurs finis a 2 decimale
j'obtien des truc comme ca 7.105427357601E-15 au lieu de 0 tous les membre
de l'addition et de la soustraction ont 2 decimales?

1 réponse

Avatar
Benoit Compoint [MS]
Bonjour,

Toutes les versions d'Access permettent de stocker des nombres décimaux dans
une table en utilisant la norme IEEE.
Si vous choisissez le type "Réel simple", chaque nombre est stocké sur 4
octets.
Si vous choisissez le type "Réel double", chaque nombre est stocké sur 8
octets.

Le type "Réel double" permet d'effectuer des approximations plus fines que
le type "Réel simple", mais il s'agit toujours d'approximations.
Pour des valeurs monétaires dont la partie décimale ne comporte pas plus de
4 chiffres, l'usage du type de données "Monétaire" constitue généralement un
meilleur choix que le type Numérique.

Avec le type "Monétaire" chaque nombre est stocké sur 8 octets.

Un nombre stocké avec le type monétaire peut être considéré comme un nombre
entier de centièmes de centimes.
Il n'y a donc aucune approximation quand Access stocke dans un champ de type
Monétaire un nombre décimal contenant au maximum 4 décimales.

Le résultat des additions et des soustractions effectuées avec des nombres
stockés dans des champs de type monétaire est donc un résultat exact (sans
aucune approximation), tant que ce résultat peut être stocké avec le type
monétaire.

Plus précisément pour que ce résultat soit exact (sans approximation), il ne
doit pas dépasser (en valeur absolue) le nombre maximal qui peut être
représenté sur 8 octets (2^63).

Le montant maximal qui peut stocké dans un champ de type "Monétaire" est
(2^63)/10000.

Autrement dit tout montant (comportant au maximum 4 décimales) compris
entre -922 337 203 685 477,5808 et +922 337 203 685 477,5807 peut être
stocké sans approximation dans un champ de type Monétaire.

Si vous utilisez Access 2000, 2002 ou 2003, vous pouvez aussi stocker vos
valeurs dans un champ de type "Numérique Décimal" avec une échelle sur 2
chiffres.

Comme le type "Monétaire", le type "Numérique Décimal" permet de stocker des
valeurs décimales sans effectuer une approximation.

Mais avec type "Numérique Décimal", chaque nombre est stocké sur 12 octets
(contre 8 octets pour le type "Monétaire").

Conclusion :
Puisque vous utilisez des nombres à deux décimales, il est probablement
préférable de forcer Access à utiliser le type Monétaire pour effectuer vos
calculs sans approximation.

Benoit Compoint

"Symon" wrote in message
news:
Lorsque j'aditione ou que je soustrait des valeurs finis a 2 decimale
j'obtien des truc comme ca 7.105427357601E-15 au lieu de 0 tous les membre
de l'addition et de la soustraction ont 2 decimales?