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

OpenOffice & LibreOffice Discussion :

Math niveau CM2 au moins [OpenOffice][Formule]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Math niveau CM2 au moins
    Bonjour
    Ca fait un petit moment que je n'avais pas touché a openOffice et je bute sur un problème de très très haut niveau (cm2)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub Main
    		Dim maVariable as Double
     
    		maVariable = 12 - 11.21
    		msgbox maVariable
    End Sub
    Pourquoi "maVariable" retourne 0,7899999999999 ???

    Merci de votre aide, j'ai déjà honte

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 919
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 919
    Points : 15 356
    Points
    15 356
    Par défaut
    Yop !
    Citation Envoyé par kikiops Voir le message
    (...) Pourquoi "maVariable" retourne 0,7899999999999 ???
    Parce que !

    Parce que c'est un problème de conversion, d'arrondi, toussa toussa, un "double" a une précision de 29 chiffres si l'aide est correcte...

    Pour contourner le problème, faut faire sauter la décimale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Main
    		Dim maVariable as Double
     
    		maVariable = (12 * 100) - (11.21 * 100)
    		msgbox (maVariable / 100)
    End Sub

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Parce que !
    Forcement !

    J'ai l'impression d’être encore à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Main
                MsgBox 'HelloWord'
    End Sub
     
    ' Et m... meme ca j'y arrive po :mouarf:
    Merci de ton aide

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 223
    Points : 28 210
    Points
    28 210
    Par défaut
    LE problème vient du type de variable utilisé. Les types Double et Float (Single suivant les appellations) sont des nombres dit à virgule flottante respectivement Double et Simple précision.

    Ces nombres là ont la particularité de ne pas être des nombres exacts. C'est à dire que l'encodage de la variable en mémoire ne permet pas de représenter la totalité des nombres possibles.
    Si, pour une valeur donnée, celle-ci n'est pas représentable, elle sera représentée par la 1ere valeur possible la plus proche. Ce qui provoque des arrondis, avec une erreur qui se propage au fil des calculs et des arrondis sur les résultats successifs.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    avec une erreur qui se propage au fil des calculs et des arrondis sur les résultats successifs.
    C'est bien ce qui m’inquiète !
    Comment gérer efficacement et proprement ces variables, car même si mes macros ne demandent pas une grande précision, "7E-02" ou "7,8999999999999" n'est pas le résultat espéré.


    Merci sevyc64

  6. #6
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 223
    Points : 28 210
    Points
    28 210
    Par défaut
    Les nombres à virgule flottante posent problème en comptabilité et dans le domaine financier et dans les domaines ou la précision loin après la virgule est très importante. On leur préfèrera dans ce cas des nombres justes, à virgule fixe, représentés souvent par des types (dépend des langages) tel que Decimal, Currency ...

    Dans la majorité des cas, les nombres à virgule flottante sont largement suffisant, c'est les plus utilisés. Plus de 80% des calculs d'un processeur sont fait sur eux, la virgule flottante est la structure de base de calcul des processeurs actuels.

    Donc, sauf à avoir besoin d'une très grande précision, voire de calculs absolument juste, ils sont parfaitement utilisables en en connaissant les limites, comme notamment faire arrondis lorsqu'il n'est pas nécessaire de conserver la précision du nombre.

    Certes, 7,8999999999999 n'est pas le résultat attendu, mais tu n'as probablement pas besoin (pour l'affichage par exemple) d'avoir 13 chiffres après la virgule. Si 2 te suffisent l'arrondi te donnera 7.90, nombre attendu je présume.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Merci sevyc64 pour ces détails. J'ai la mémoire qui me revient ! Ca y est j'ai honte

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

Discussions similaires

  1. Le niveau de Maths en formation Ingénieur Réseau Cnam
    Par petitjojogolo dans le forum Etudes
    Réponses: 14
    Dernier message: 28/02/2015, 15h07
  2. Mise a niveau math pour admission ecole ingenieur
    Par Razielone dans le forum Etudes
    Réponses: 3
    Dernier message: 19/07/2010, 17h01
  3. Niveau des maths iut info
    Par Hyoga dans le forum Etudes
    Réponses: 21
    Dernier message: 28/09/2006, 16h15
  4. [Conseil] Livre Algo-maths niveau débutant
    Par spilliaert dans le forum Débuter
    Réponses: 11
    Dernier message: 21/04/2006, 19h57

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