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» ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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...
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...
"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.
merci beaucoup !
Danny
"Danny Poirier" <dpoirier@pgsystem.com> a écrit dans le message de news:
#o$sBbDtDHA.2520@TK2MSFTNGP10.phx.gbl...
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» ?
"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» ?