IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Probleme chiffres après la virgule ! [AC-2007]


Sujet :

Access

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 91
    Points : 89
    Points
    89
    Par défaut Probleme chiffres après la virgule !
    Bonjour

    Je ne sais pas si c'est un truc bête, où c'est un vrai problème, en tout les cas je galère depuis ce matin:

    Voila: dans une simple requête SQL dans Access 2007 je mets

    MontantLigne: [PrixVenteHT]*[QuSort]

    C'est une simple requête sélection qui est basé sur une table, avec entre autre:
    PrixVenteHT, Numérique, Taille du champ: Réel simple, Format: standard et décimales: 2
    QuSort, Numérique, Taille du champ: Entier long, Format: Nombre général et décimales: 0

    Le montant PrixVenteHT et la quantité sont saisis à la main pour remplir la table

    Le problème est que: quand je mets par exemple: 4 273.51 * 500 j'ai 2 136 754.88 ou 2 136 754.8828125 pour être plus précis, alors que la calculatrice ou Excel donne le résultat suivant: 2136755,00 qui est juste
    J'ai même fait le calcul a la main chose que je n'est pas fait il y a fort longtemps

    Selon vous d'où viens ce problème ?

    Et merci d'avance

  2. #2
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Bonjour,
    Alors il faudrait voir le type des champs en base : PrixVenteHT et quantité ?
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    C'est un problème classique avec les nombres dans les ordinateurs. C'est TOUJOURS une approximation et des fois cette approximation est exacte.

    Il n'y a pas vraiment de solution mais je t'invite à changer ton type de réel simple à réel double.
    Cela ne résout pas la base du problème mais cela repousse la limite où il est gênant.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 91
    Points : 89
    Points
    89
    Par défaut
    Merci beaucoup pour vos réponses, je veut noter aussi que c'est la 1ere fois que ça m'arrive
    je ne sais pas si j'ai raison, mais je crois que Windows 10 est pour quelque chose, car c'est ma 1ere appli qui fonctionne sous ce système/tablette

    Finalement j'ai régler le problème en modifiant le type de données de tous les champs de Numérique a Monétaire, et le problème est réglé, mais je ne comprends pas pourquoi ? j'ai toujours travailler avec le type Numérique et je met comme format Standard avec 2 décimales
    et ce que je ne comprends surtout pas, c'est que l'opératrice a bien saisi le chiffre 4 273.51 et quand j'ai converti le type de donnée pour le champs en monétaire il m'a afficher 4 273.5098 d'où viens ça ?!!!!

    En tout les cas merci pour tout, et je vous tiendrai au courant en cas de nouvelles informations

    Cordialement

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonjour,
    ce n'est pas Windows ni le numérique qui sont en cause (tous ces champs sont numériques) mais bel et bien le type réel simple et ce problème est connu depuis les premières versions d'Access.
    Tu as eu raison de changer le type de tes données numériques en monétaire qui est préconisé pour les applications de gestion en prenant soin d'utiliser Round() ligne par ligne dans les calculs pour éviter les 3èmes et 4èmes décimales pour ne pas avoir de surprises dans les totalisations.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Finalement j'ai réglé le problème en modifiant le type de données de tous les champs de Numérique a Monétaire, et le problème est réglé, mais je ne comprends pas pourquoi ? j'ai toujours travailler avec le type Numérique et je met comme format Standard avec 2 décimales
    et ce que je ne comprends surtout pas, c'est que l'opératrice a bien saisi le chiffre 4 273.51 et quand j'ai converti le type de donnée pour le champs en monétaire il m'a afficher 4 273.5098 d'où viens ça ?!!!!
    C'est un problème classique avec les nombres dans les ordinateurs. C'est TOUJOURS une approximation et des fois cette approximation est exacte.
    Il y a une infinité de nombres réels mais il n'est pas possible de les coder tous. Access utilise 4 ou 8 octets et y assigne la valeur la plus proche possible de celle demandée.
    De plus mathématiquement parlant si tu as 1.99999999999999999999999 avec une infinité de décimales ou du moins un bon paquet il est admis que c'est la même chose que 2.0 car l'écart est tellement minime qu'il devient insignifiant.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonjour rené
    juste une précision pour ceci :
    C'est un problème classique avec les nombres dans les ordinateurs. C'est TOUJOURS une approximation et des fois cette approximation est exacte.
    C'est vrai uniquement avec les nombres à virgule flottante (réels simples ou doubles) pas pour les entiers et entiers long (qui n'ont pas de virgule) ou les Monétaires car la précision est limitée à 4 décimales (quand on saisit 1,9999 dans un Monétaire, il ne sera JAMAIS arrondi pour peu que l'on a pris soin de ne pas mettre de format trompeur (Standard avec 2 Décimales par exemple) qui pourrait le faire croire.

    https://fr.wikipedia.org/wiki/Virgul...ons_d.27emploi
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 91
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par marot_r Voir le message
    C'est un problème classique avec les nombres dans les ordinateurs. C'est TOUJOURS une approximation et des fois cette approximation est exacte.
    Il y a une infinité de nombres réels mais il n'est pas possible de les coder tous. Access utilise 4 ou 8 octets et y assigne la valeur la plus proche possible de celle demandée.
    De plus mathématiquement parlant si tu as 1.99999999999999999999999 avec une infinité de décimales ou du moins un bon paquet il est admis que c'est la même chose que 2.0 car l'écart est tellement minime qu'il devient insignifiant.

    A+

    Oui c'est un problème connu mais dans les résultats de calcul pas dans la saisie des chiffres, quand on saisi le montant 4 273.51 a la main, ensuite quand on affiche 4 chiffres après la virgule on trouve 4 273.5098 !!! c'est ça qui me parait bisare

    quant a :
    Citation Envoyé par tee_grandbois Voir le message
    en prenant soin d'utiliser Round() ligne par ligne dans les calculs pour éviter les 3èmes et 4èmes décimales pour ne pas avoir de surprises dans les totalisations.
    ça c'est une très bonne méthode de travail, que j'avais négliger dans mes premières application, et je viens de m’apercevoir, je ne faisais qu'afficher le résultat avec le format 2 décimales après la virgule, qui est juste une façon d'afficher.

    Merci a tous

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Oui c'est un problème connu mais dans les résultats de calcul pas dans la saisie des chiffres, quand on saisi le montant 4 273.51 a la main, ensuite quand on affiche 4 chiffres après la virgule on trouve 4 273.5098 !!! c'est ça qui me parait bisare
    Non, je confirme que même à la saisie, utiliser le single et le double cela a toujours posé problème.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Merci tee_grandbois pour la précision.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  11. #11
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 91
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    Non, je confirme que même à la saisie, utiliser le single et le double cela a toujours posé problème.
    Merci pour l'info, ça c'est nouveau pour moi, car a part les problèmes dans les résultats je ne l'avais jamais rencontrer



    Citation Envoyé par marot_r Voir le message
    Merci tee_grandbois pour la précision.

    A+

    Merci beaucoup marot_r j'avais compris que tu voulais parler des résultats seulement, et là je te comprends bien

    Bonne journée a tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. arrondir un nombre à 2 chiffres après la virgule
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/02/2005, 08h36
  2. Commande pour afficher des chiffres apres la virgule
    Par manar dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 23/09/2004, 18h28
  3. Chiffres après la virgule figés
    Par bondjames dans le forum Bases de données
    Réponses: 6
    Dernier message: 10/03/2004, 23h09
  4. [MFC] Nombre de chiffres après la virgule
    Par karl3i dans le forum MFC
    Réponses: 3
    Dernier message: 27/01/2004, 13h04
  5. Nb de chiffres après la virgule ?
    Par Thcan dans le forum C
    Réponses: 10
    Dernier message: 17/09/2003, 21h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo