Bonjour,
J'ai un problème très étrange dans mon script R
La partie qui pose problème est celle-ci:
cela me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 print(paste("heureArrivee[i]",heureArrivee[i])) print(paste("tempsCourant",tempsCourant)) tempsAttendu <- heureArrivee[i] - tempsCourant print(paste("tempsAttendu",tempsAttendu))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [1] "heureArrivee[i] 4.1" [1] "tempsCourant 4" [1] "tempsAttendu 0.0999999999999996"
Comment est-il possible qu'une simple soustraction correspondant à 4.1 - 1 renvoi 0.0999999999999996
Ce qui est d'autant plus étrange, est que dans certain cas, le programme fait comme ci ce nombre était vraiment 0.1:
retourne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 print(paste("caisse avant",caisse[j])) caisse[j] <- caisse[j] - tempsAttendu print(paste("tempsAttendu",tempsAttendu)) print(paste("caisse apres",caisse[j]))
Si cela fonctionnait dans tout les cas, je m'en inquiéterais pas trop, mais dans certains ça cela me foire mon résultat et donc ça pose vraiment un problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [1] "caisse avant 1" [1] "tempsAttendu 0.0999999999999996" [1] "caisse apres 0.9" [1] "tempsCourant 4.1"
Voici un exemple de cas où ça me foire le résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 [1] "heureArrivee[i] 4.2" [1] "tempsCourant 4.1" [1] "tempsAttendu 0.100000000000001" [1] "caisse avant 0.9" [1] "tempsAttendu 0.100000000000001" [1] "caisse apres 0.8" [1] "heureArrivee[i] 4.2" [1] "tempsCourant 4.1" [1] "tempsAttendu 0.100000000000001" [1] "caisse avant 1" [1] "tempsAttendu 0.100000000000001" [1] "caisse apres 0.899999999999999" [1] "tempsCourant 4.2"
Je n'arrive pas à comprendre comment cela est possible, et je ne pense pas que cela ai un rapport avec le reste de mon code étant donné que les valeur heureArrivee[i] et tempsCourant sont bonne dans les print
Si quelqu'un aurait une piste pour m'aider à résoudre ce problème...
Merci d'avance
Partager