OVH Cloud OVH Cloud

Problème d'arrondi lors de requète

8 réponses
Avatar
Stef
Bonjour,

Je récupère des données Access dans un tableur excel par le biais d'une
requète. Pour certain champs les données que je reçoit sont erronées. Par
exemple dans access j'ai 7,4 et dans excel je trouve 7,40000009536743

Si je copie/colle manuellement le champs de la table access dans une cellule
execl, la valeur est bien de 7,4

Le problème n'est pas bien grave, car les erreurs sont toujours négligeables
comme dans l'exemple, mais je ne comprends pas. D'autant que cela n'arrive
que sur certaines lignes d'une même table et pas sur tous les champs.

Pour info, le champs en question est défini dans la table comme réel simple,
Format fixe, Nbre de décimales 2

Merci de vos réponses

8 réponses

Avatar
Stef
Dans ta table Ok, mais dans ta requête, le format est-il
toujours définit avec deux décimales ?

Amicalement
Pol

Je sais pas, mais dans la mesure ou je tape 7,4 dans access, pourquoi
j'obtiens 7,400000xxxx ?
Avatar
Pol Soumillon
Bonjour,

Dans ta table Ok, mais dans ta requête, le format est-il
toujours définit avec deux décimales ?

Amicalement
Pol

-----Message d'origine-----
Bonjour,

Je récupère des données Access dans un tableur excel par
le biais d'une

requète. Pour certain champs les données que je reçoit
sont erronées. Par

exemple dans access j'ai 7,4 et dans excel je trouve
7,40000009536743


Si je copie/colle manuellement le champs de la table
access dans une cellule

execl, la valeur est bien de 7,4

Le problème n'est pas bien grave, car les erreurs sont
toujours négligeables

comme dans l'exemple, mais je ne comprends pas. D'autant
que cela n'arrive

que sur certaines lignes d'une même table et pas sur
tous les champs.


Pour info, le champs en question est défini dans la
table comme réel simple,

Format fixe, Nbre de décimales 2

Merci de vos réponses


.



Avatar
Pol Soumillon
Bonjour,

Dans ta table Ok, mais dans ta requête, le format est-il
toujours définit avec deux décimales ?

Amicalement
Pol

-----Message d'origine-----
Bonjour,

Je récupère des données Access dans un tableur excel par
le biais d'une

requète. Pour certain champs les données que je reçoit
sont erronées. Par

exemple dans access j'ai 7,4 et dans excel je trouve
7,40000009536743


Si je copie/colle manuellement le champs de la table
access dans une cellule

execl, la valeur est bien de 7,4

Le problème n'est pas bien grave, car les erreurs sont
toujours négligeables

comme dans l'exemple, mais je ne comprends pas. D'autant
que cela n'arrive

que sur certaines lignes d'une même table et pas sur
tous les champs.


Pour info, le champs en question est défini dans la
table comme réel simple,

Format fixe, Nbre de décimales 2

Merci de vos réponses


.



Avatar
Galfi
Tu peux aussi utiliser la fonction Round(Nombre; Pecision)
C'est rapide


"Stef" a écrit dans le message de
news:
Bonjour,

Je récupère des données Access dans un tableur excel par le biais d'une
requète. Pour certain champs les données que je reçoit sont erronées. Par
exemple dans access j'ai 7,4 et dans excel je trouve 7,40000009536743

Si je copie/colle manuellement le champs de la table access dans une
cellule

execl, la valeur est bien de 7,4

Le problème n'est pas bien grave, car les erreurs sont toujours
négligeables

comme dans l'exemple, mais je ne comprends pas. D'autant que cela n'arrive
que sur certaines lignes d'une même table et pas sur tous les champs.

Pour info, le champs en question est défini dans la table comme réel
simple,

Format fixe, Nbre de décimales 2

Merci de vos réponses




Avatar
Pierre CFI
bonjour
essaie de forcer ton format dans la req
Tata : Cdbl(Format([champ];"#,00"))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Stef" a écrit dans le message de news:

Dans ta table Ok, mais dans ta requête, le format est-il
toujours définit avec deux décimales ?

Amicalement
Pol

Je sais pas, mais dans la mesure ou je tape 7,4 dans access, pourquoi
j'obtiens 7,400000xxxx ?




Avatar
Pol Soumillon
Normalement, si ce n'est pas un champ calculé, si tu
tapes 7,4 tu devrais avoir, selon le format choisi,
7,40000000000 (paramètre le champ de saisie sur deux
décimales) ou parmètre le champ de ta requête également
sur deux décimales.

Amicalement
Pol
-----Message d'origine-----

Dans ta table Ok, mais dans ta requête, le format est-il
toujours définit avec deux décimales ?

Amicalement
Pol

Je sais pas, mais dans la mesure ou je tape 7,4 dans
access, pourquoi

j'obtiens 7,400000xxxx ?


Avatar
Daniel Carollo
Bonjour Stef!

C'est tout a fait normal, ca vient du format choisi pour le stockage des
donnees. Si le format est entier, il n'y a pas de probleme, il y a
correspondance exacte entre la base 2 et la base 10. Par contre, pour les
formats non entiers, il n'y a pas de correspondance exacte si le nombre
stocke n'est pas une puissance entiere de 2 (0.5, 0.25, 0.125, 0.0625
etc...) il y a alors une erreur d'arrondi.

Si votre format est de deux decimales, peut-etre aurez vous une meilleure
precision en utilisant le format monetaire...

Bonne continuation.

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Stef" wrote in message
news:
Bonjour,

Je récupère des données Access dans un tableur excel par le biais d'une
requète. Pour certain champs les données que je reçoit sont erronées. Par
exemple dans access j'ai 7,4 et dans excel je trouve 7,40000009536743

Si je copie/colle manuellement le champs de la table access dans une
cellule

execl, la valeur est bien de 7,4

Le problème n'est pas bien grave, car les erreurs sont toujours
négligeables

comme dans l'exemple, mais je ne comprends pas. D'autant que cela n'arrive
que sur certaines lignes d'une même table et pas sur tous les champs.

Pour info, le champs en question est défini dans la table comme réel
simple,

Format fixe, Nbre de décimales 2

Merci de vos réponses




Avatar
Stef
Merci pour la réponse, c'est très clair.

"Daniel Carollo" a écrit dans le
message de news:
Bonjour Stef!

C'est tout a fait normal, ca vient du format choisi pour le stockage des
donnees. Si le format est entier, il n'y a pas de probleme, il y a
correspondance exacte entre la base 2 et la base 10. Par contre, pour les
formats non entiers, il n'y a pas de correspondance exacte si le nombre
stocke n'est pas une puissance entiere de 2 (0.5, 0.25, 0.125, 0.0625
etc...) il y a alors une erreur d'arrondi.

Si votre format est de deux decimales, peut-etre aurez vous une meilleure
precision en utilisant le format monetaire...

Bonne continuation.

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Stef" wrote in message
news:
Bonjour,

Je récupère des données Access dans un tableur excel par le biais d'une
requète. Pour certain champs les données que je reçoit sont erronées.
Par


exemple dans access j'ai 7,4 et dans excel je trouve 7,40000009536743

Si je copie/colle manuellement le champs de la table access dans une
cellule

execl, la valeur est bien de 7,4

Le problème n'est pas bien grave, car les erreurs sont toujours
négligeables

comme dans l'exemple, mais je ne comprends pas. D'autant que cela
n'arrive


que sur certaines lignes d'une même table et pas sur tous les champs.

Pour info, le champs en question est défini dans la table comme réel
simple,

Format fixe, Nbre de décimales 2

Merci de vos réponses