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 d'arrondi dans une moyenne


Sujet :

Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Probleme d'arrondi dans une moyenne
    Bien le bonjours!
    J'ai un gros problème, et je ne comprend pas dutout la logique de access 97!

    je calcule une moyenne avec cette formule : =(CNum([valeur9])+CNum([valeur10]))/2

    Ex 1 :
    Valeur9 = 117.5
    Valeur 10 = 117.7
    Résultat = 117 au lieu de 117.6

    Ex 2 :
    Valeur9 = 116,0
    Valeur 10 = 125,4
    Résultat = 120,5 au lieu de 120.7

    Si vous voulez d'autre exemple j'en est plein !

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 282
    Points : 356
    Points
    356
    Par défaut
    Bonjour,

    Un programme ne fait jamais rien d'autre que ce qu'on lui demande de faire...
    Ceci etant dit, quelles pourraient etre les raisons d'un tel comportement ?
    • Pourquoi utiliser CNUM ? [valeur9] et valeur[10] ne sont pas des champs numeriques ?
    • La variable devant contenir le resultat du calcul est-elle declaree en integer ? (devrait idealement etre une Double)
    • Le format d'affichage ne prevoit pas assez de decimales ?

    Je pense que repondre a ces questions devrait deja permettre d'approcher le resultat escompte...
    - Bien programmer n'est pas choisir la solution la plus simple, mais la meilleure -

  3. #3
    Membre expérimenté Avatar de stigma
    Homme Profil pro
    Créateur jeux vidéo
    Inscrit en
    Octobre 2003
    Messages
    1 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Créateur jeux vidéo
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 111
    Points : 1 612
    Points
    1 612
    Par défaut
    essaye ça
    J'ai eu ce pb avec des moyennes sur Access 2003.

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    L'explication vient sans doute du comportement de CNum (Val en Visual Basic)

    Extraits de l'aide d'Access
    Syntaxe
    Val(string)

    La fonction Val arrête la lecture de la chaîne au premier caractère ne faisant apparemment pas partie d'un nombre.
    La fonction Val ne reconnaît que le point comme séparateur décimal (.)
    Si le séparateur décimal est la virgule, la conversion en nombre s'arrête à celle-ci ...

    Ex 1 :
    Valeur9 = 117,5 ---------> CNum("117,5") ---> 117
    Valeur 10 = 117,7 -------> CNum("117,7") ---> 117
    (117 + 117) / 2 = 117

    Ex 2 :
    Valeur9 = 116,0 ---------> CNum("116,0") ---> 116
    Valeur 10 = 125,4 -------> CNum("125,4") ---> 125
    (116 + 125) / 2 = 120.5

    Comme l'argument de Val (ou CNum) est de type String, même si Valeur9 et Valeur10 sont numériques,
    il seront d'abord convertis en String avant d'être passés à Val.

    A+

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/02/2005, 13h05
  2. probleme de recordset dans une boucle do while
    Par Shoryu dans le forum ASP
    Réponses: 18
    Dernier message: 05/07/2004, 15h30
  3. Réponses: 2
    Dernier message: 24/06/2004, 09h13
  4. [LG]probleme d'ajout dans une liste chainée...
    Par misteryann dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2004, 20h28
  5. [BPW]Problème de recherche dans une boîte liste
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 14
    Dernier message: 05/07/2003, 15h10

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