1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.

calcul faux avec arduino mega2560

Discussion dans 'Informatique' créé par laidfroid, 31 Mai 2013.

  1. laidfroid

    laidfroid Apprenti

    Messages:
    82
    Inscrit:
    7 Mars 2010
    Localité:
    33240
    calcul faux avec arduino mega2560
    bonjour.

    l'affichage et le calcul avec plus de 4 décimale sont faux sur une arduino mega2560.
    je ne sais pas si les calculs sont aussi erronés avec d'autre type de cartes mais sur mes deux arduino, ils ont exactement le même résultat. :sad:

    voici un exemple qui ne fait rien de particulier mais qui montre le problème.

    Calcul_faux.jpg
    ↑  résultat en fonction de la virgule.



    comme j'utilise des fonctions trigonométriques pour un projet, cela devient très gênant si les calculs sont faux. :mad:

    cordialement, J.P.
     
  2. chlore

    chlore Compagnon

    Messages:
    2 329
    Inscrit:
    10 Mars 2007
    Localité:
    Candulonts
    calcul faux avec arduino mega2560
    Bonjour

    Pourquoi utiliser la version 1.5.2 de L'IDE ...c'est une version Beta et est utilisée pour la Due
    Avec la version 1.04 aucun problème :
    Untitled-1.jpg
     
  3. ChristianR

    ChristianR Apprenti

    Messages:
    97
    Inscrit:
    28 Janvier 2013
    Localité:
    38
    calcul faux avec arduino mega2560
    La fonction serial.print(num, 4) ne fait pas une troncature en gardant les 4 premières décimales, mais un arrondi à la valeur la plus proche.

    Donc 0.12346 sera arrondi par excès à 0.1235, c'est juste.
    Ca ne concerne que l'affichage sur le serial monitor, pas les calculs.
     
  4. chlore

    chlore Compagnon

    Messages:
    2 329
    Inscrit:
    10 Mars 2007
    Localité:
    Candulonts
    calcul faux avec arduino mega2560
    Carte Mega2560 avec les deux IDE
    Untitled-2.jpg Untitled-3.jpg

    La Due et l'IDE 1.5.2
    Untitled-5.jpg

    Le résultat est meilleur sur la Due pour la 3eme ligne : la 4eme décimale est bien 1 et non pas 0 pour la Méga
    Idem avec la 4me ligne l’arrondi est mal fait sur la Méga et bon sur la Due

    Le calcul est exact pour les deux carte/IDE avec la division (la 7eme décimale est un 0 donc dans les deux cas cela se termine bien par 9 avec 6 décimales)
     
  5. PsyKo

    PsyKo Ouvrier

    Messages:
    328
    Inscrit:
    24 Janvier 2013
    calcul faux avec arduino mega2560
    Bonjour,

    Problème classique de gestion des nombres à virgules. Il faut se méfier de l'affichage.
    Afficher 0.1234679 (différence de -8.77e-10) est beaucoup plus juste que d'afficher 0.1234678 (différence de 9.12e-9).

    Surtout qu'en lisant la doc arduino il faut prendre en compte le format des float : ils sont stockés sur 32 bits.

    Donc seulement 6 à 7 digits. De facto, la valeur 0,1234567891234 que tu entres en début de programme n'a aucun sens.

    De plus,
    D'ou des résultas parfois étranges.
     
  6. laidfroid

    laidfroid Apprenti

    Messages:
    82
    Inscrit:
    7 Mars 2010
    Localité:
    33240
    calcul faux avec arduino mega2560
    merci pour votre aide.

    mais qu'est ce que je suis nul. :smt003

    je me faisais une fixation sur l'affichage, me voila rassuré. :-D

    cordialement, J.P.
     
  7. PsyKo

    PsyKo Ouvrier

    Messages:
    328
    Inscrit:
    24 Janvier 2013
    calcul faux avec arduino mega2560
    De nombreux développeurs se sont fait avoir avant toi.
    Une fois que l'on a compris le problème, tout va mieux :)
     
Chargement...
Articles en relation
  1. j.f.
    Réponses:
    11
    Affichages:
    6 957

Partager cette page