OVH Cloud OVH Cloud

À l'aide : Conversion de type...

3 réponses
Avatar
Danny Poirier
Bonjour,

Je possède un formulaire contenant un sous formulaire pour effectuer de la
saisie sur plusieurs lignes. Le sous formulaire me permet de saisir que des
valeurs entières sauf pour le prix qui est exprimé sous forme numérique avec
deux chiffres après la virgule. Sur mon formulaire principal, j'ai un bouton
de commande me permettant de calculer le total de ma facture.

Dans ma fonction me permettant de calculer le total de la facture, j'utilise
une variable de type «Single» pour contenir la valeur d'une division par
1000 que j'effectue sur un des champs de ma table contenant les valeurs de
mon sous formulaire. Ensuite, j'appelle une fonction recevant une valeur
numérique de type «Double» pour arrondir ce nombre avec une précision de
deux chiffres après la virgule.

Ce que je ne comprends pas c'est que lors de la conversion de ma valeur
numérique du type «Single» au type «Double», il y a un écart entre les deux
valeurs.

Exemple :

De type «Single» elle vaut 0.012
De type «Double» elle vaut 0.119999997317791

Le pire c'est que lorsque j'effectue le calcul moi même à l'aide de ma
calculatrice, j'arrive à la réponse de 0.012 et en aucun cas je pourrais
arriver à la réponse de 0.119999997317791.

Comment fait-il pour générer un nombre différent lors de la conversion du
type «Single» vers le type «Double» ?

Aidez-moi svp je ne comprends plus rien.

Merci.

3 réponses

Avatar
Xavier HUE
Bonjour Danny,

J'ai eu quelques soucis sous Access 97, avec des zones
déclarées en Single. Je ne me souviens plus exactement du
contexte, mais je me retrouvais de temps en temps avec des
données portant une tripotée de chiffres après la virgule.
Un article dans la KB Microsoft explique un bug dans la
gestion des données Single. Contournement => passer les
zones en Double ou Currency, ou utiliser des fonctions de
conversion comme CDbl, CDec, CSng...

Une piste à suivre...
Si je retrouve le lien, je le poste ici...

Cordialement.
Avatar
Xavier HUE
à suivre:

http://support.microsoft.com/default.aspx?scid=kb;en-
us;207832

et

http://minilien.com/?stIMTpynf6

Cordialement.
Avatar
Danny Poirier
merci beaucoup !

Danny

"Danny Poirier" a écrit dans le message de news:
#o$
Bonjour,

Je possède un formulaire contenant un sous formulaire pour effectuer de la
saisie sur plusieurs lignes. Le sous formulaire me permet de saisir que
des

valeurs entières sauf pour le prix qui est exprimé sous forme numérique
avec

deux chiffres après la virgule. Sur mon formulaire principal, j'ai un
bouton

de commande me permettant de calculer le total de ma facture.

Dans ma fonction me permettant de calculer le total de la facture,
j'utilise

une variable de type «Single» pour contenir la valeur d'une division par
1000 que j'effectue sur un des champs de ma table contenant les valeurs de
mon sous formulaire. Ensuite, j'appelle une fonction recevant une valeur
numérique de type «Double» pour arrondir ce nombre avec une précision de
deux chiffres après la virgule.

Ce que je ne comprends pas c'est que lors de la conversion de ma valeur
numérique du type «Single» au type «Double», il y a un écart entre les
deux

valeurs.

Exemple :

De type «Single» elle vaut 0.012
De type «Double» elle vaut 0.119999997317791

Le pire c'est que lorsque j'effectue le calcul moi même à l'aide de ma
calculatrice, j'arrive à la réponse de 0.012 et en aucun cas je pourrais
arriver à la réponse de 0.119999997317791.

Comment fait-il pour générer un nombre différent lors de la conversion du
type «Single» vers le type «Double» ?

Aidez-moi svp je ne comprends plus rien.

Merci.