[R] Opérateur de soustraction

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Frederic
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mer. 05 mai 2010 16:18
Status : Hors ligne

[R] Opérateur de soustraction

#1

Message par Frederic »

Bonjour, je ne vois pas ce que j'ai loupé:

voici mon script:

Code : Tout sélectionner

$test = 4.03
$test2 = 4.02
MsgBox(0,"",$test - $test2)

 
Le résultat de la message box est 0.0100000000000007.
Est-ce que ça ne devrait pas être 0.01.

Merci de votre aide.
Cordialement.
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Opérateur de soustraction

#2

Message par SrBelial »

bonjour,

ce genre d'erreur peut apparaitre quel que soit le langage de programmation utilisé,
l'explication simplifiée est la suivante :

les valeurs numériques contenues dans des variables sont en représentation flottante, ce qui implique une limite sur la précision (je ne m'étendrai pas plus là dessus par peur de dire des conneries, il me faudrait réviser mes cours .... ^__^)
Ce genre de défaut de précision apparait dans beaucoup de langages de programmation lors de l'utilisation des flottants, qui nécessite alors de faire appel à une variable supplémentaires dans tous les tests de comparaison (elle est appelée le plus souvent epsilon, et représente la plus petite valeur telle que le test [0 + epsilon > 0] soit toujours vrai).

voila pour l'explication à l'arrache qui aide pas beaucoup dans notre cas ...

=> une solution à ton problème : suivant la précision dont tu as besoin, arrondi toutes tes valeurs numériques à un nombre de décimales fixes.

LA BONNE NOUVELLE : tu n'as rien loupé, tu fais juste face à un problème très fréquent en informatique !! CONGRATULATIONS !!!

En l'occurrence sur ton exemple seules les deux premières décimales sont significatives.
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Opérateur de soustraction

#3

Message par Jerome »

Coucou.

Voici une solution à ton problème :

Code : Tout sélectionner

$test = 4.02
$test2 = 4.01
$test3 = round($test - $test2, 2)

MsgBox(0,"",$test3)
 
Plus d'info ici
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Opérateur de soustraction

#4

Message par SrBelial »

je crois qu'il reviendra pas pour mettre le [R] ...
c'était son seul et unique message, si ça se trouve depuis il est décédé ou un truc du genre ... d(x__x)b

snif snif
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
Sh4dows
Status : Hors ligne

Re: [..] Opérateur de soustraction

#5

Message par Sh4dows »

:lol:
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Opérateur de soustraction

#6

Message par jbnh »

Message passé en [R]
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [R] Opérateur de soustraction

#7

Message par sylvanie »

moralité, dès qu'il y a une virgule dans le calcul, la précision tombe à la float :mrgreen:

Ok , je me couche sans manger -----------> :mrgreen:
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [R] Opérateur de soustraction

#8

Message par SrBelial »

lol je kiffe !
je la re-sortirai celle là ! ^______^

...

...

...

va manger un morceau quand même hein ! je pense pas que Tlem serait content de perdre un modo pour cause de vanne à accessibilité limitée...
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
Répondre