Petit problème (en plein milieu) lors de l’exécution du programme
Résolu
AMK49
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
AMK49 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
AMK49 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Quelqu'un aurait-il une idée de pourquoi lorsque j'exécute le programme suivant :
J'obtiens ce tableau :
Euro Franc
0 0
0,1 0,655957
0,2 1,311914
0,3 1,967871
0,4 2,623828
0,5 3,279785
0,6 3,935742
0,7 4,591699
0,8 5,247656
0,9 5,903613
1 6,55957
1,1 7,215527
1,2 7,871484
1,3 8,527441
1,4 9,183398
1,5 9,839355
1,6 10,495312
1,7 11,151269
1,8 11,807226
1,9 12,463183
2 13,11914
2,1 13,775097
2,2 14,431054
2,3 15,087011
2,4 15,742968
2,5 16,398925
2,6 17,054882
2,7 17,710839
2,8 18,366796
2,9 19,022753
3 19,67871
3,1 20,334667
3,2 20,990624
3,3 21,646581
3,4 22,302538
3,5 22,958495
3,6 23,614452
3,7 24,270409
3,8 24,926366
3,9 25,582323
4 26,23828
4,1 26,894237
4,2 27,550194
4,3 28,206151
4,4 28,862108
4,5 29,518065
4,6 30,174022
4,7 30,829979
4,8 31,485936
4,9 32,141893
5 32,79785
5,1 33,453807
5,2 34,109764
5,3 34,765721
5,4 35,421678
5,5 36,077635
5,6 36,733592
5,7 37,389549
5,8 38,045506
5,9 38,701463
5,99999999999999 39,35742
6,09999999999999 40,013377
6,19999999999999 40,669334
6,29999999999999 41,325291
6,39999999999999 41,981248
6,49999999999999 42,637205
6,59999999999999 43,293162
6,69999999999999 43,9491189999999
6,79999999999999 44,6050759999999
6,89999999999999 45,2610329999999
6,99999999999999 45,9169899999999
7,09999999999999 46,5729469999999
7,19999999999999 47,2289039999999
7,29999999999999 47,8848609999999
7,39999999999999 48,5408179999999
7,49999999999999 49,1967749999999
7,59999999999999 49,8527319999999
7,69999999999999 50,5086889999999
7,79999999999999 51,1646459999999
7,89999999999999 51,8206029999999
7,99999999999999 52,4765599999999
8,09999999999999 53,1325169999999
8,19999999999999 53,7884739999999
8,29999999999999 54,4444309999999
8,39999999999999 55,1003879999999
8,49999999999999 55,7563449999999
8,59999999999999 56,4123019999999
8,69999999999999 57,0682589999999
8,79999999999998 57,7242159999999
8,89999999999998 58,3801729999999
8,99999999999998 59,0361299999999
9,09999999999998 59,6920869999999
9,19999999999998 60,3480439999999
9,29999999999998 61,0040009999999
9,39999999999998 61,6599579999999
9,49999999999998 62,3159149999999
9,59999999999998 62,9718719999999
9,69999999999998 63,6278289999999
9,79999999999998 64,2837859999999
9,89999999999998 64,9397429999999
9,99999999999998 65,5956999999999
Tout est bien exécuté par palier de 0,1 jusqu'à 5,9. Et ensuite au lieu de passer à 6, il passe à 5,999999999998, puis 6,099999999998, puis 6,19999999999998.... et non 6; 6,1; 6,2........
Une explication? Une idée?
Merci pour votre aide.
Quelqu'un aurait-il une idée de pourquoi lorsque j'exécute le programme suivant :
Sub tableuro3() 'Insertion d'un tableau de 100 lignes et 2 colonnes ActiveDocument.Tables.Add Range:=Selection.Range, _ NumRows:=100, NumColumns:=2, _ DefaultTableBehavior:=wdWord9TableBehavior, _ AutoFitBehavior:=wdAutoFitFixed 'On imprime un tableau de conversion d'euros en francs 'Remplissage des en-têtes de colonnes Selection.TypeText Text:="Euro" Selection.MoveRight Unit:=wdCell Selection.TypeText Text:="Franc" Selection.MoveRight Unit:=wdCell For euros = 0 To 10 Step 0.1 Selection.TypeText Text:=euros Selection.MoveRight Unit:=wdCell Selection.TypeText Text:=euros * 6.55957 Selection.MoveRight Unit:=wdCell Next euros End Sub
J'obtiens ce tableau :
Euro Franc
0 0
0,1 0,655957
0,2 1,311914
0,3 1,967871
0,4 2,623828
0,5 3,279785
0,6 3,935742
0,7 4,591699
0,8 5,247656
0,9 5,903613
1 6,55957
1,1 7,215527
1,2 7,871484
1,3 8,527441
1,4 9,183398
1,5 9,839355
1,6 10,495312
1,7 11,151269
1,8 11,807226
1,9 12,463183
2 13,11914
2,1 13,775097
2,2 14,431054
2,3 15,087011
2,4 15,742968
2,5 16,398925
2,6 17,054882
2,7 17,710839
2,8 18,366796
2,9 19,022753
3 19,67871
3,1 20,334667
3,2 20,990624
3,3 21,646581
3,4 22,302538
3,5 22,958495
3,6 23,614452
3,7 24,270409
3,8 24,926366
3,9 25,582323
4 26,23828
4,1 26,894237
4,2 27,550194
4,3 28,206151
4,4 28,862108
4,5 29,518065
4,6 30,174022
4,7 30,829979
4,8 31,485936
4,9 32,141893
5 32,79785
5,1 33,453807
5,2 34,109764
5,3 34,765721
5,4 35,421678
5,5 36,077635
5,6 36,733592
5,7 37,389549
5,8 38,045506
5,9 38,701463
5,99999999999999 39,35742
6,09999999999999 40,013377
6,19999999999999 40,669334
6,29999999999999 41,325291
6,39999999999999 41,981248
6,49999999999999 42,637205
6,59999999999999 43,293162
6,69999999999999 43,9491189999999
6,79999999999999 44,6050759999999
6,89999999999999 45,2610329999999
6,99999999999999 45,9169899999999
7,09999999999999 46,5729469999999
7,19999999999999 47,2289039999999
7,29999999999999 47,8848609999999
7,39999999999999 48,5408179999999
7,49999999999999 49,1967749999999
7,59999999999999 49,8527319999999
7,69999999999999 50,5086889999999
7,79999999999999 51,1646459999999
7,89999999999999 51,8206029999999
7,99999999999999 52,4765599999999
8,09999999999999 53,1325169999999
8,19999999999999 53,7884739999999
8,29999999999999 54,4444309999999
8,39999999999999 55,1003879999999
8,49999999999999 55,7563449999999
8,59999999999999 56,4123019999999
8,69999999999999 57,0682589999999
8,79999999999998 57,7242159999999
8,89999999999998 58,3801729999999
8,99999999999998 59,0361299999999
9,09999999999998 59,6920869999999
9,19999999999998 60,3480439999999
9,29999999999998 61,0040009999999
9,39999999999998 61,6599579999999
9,49999999999998 62,3159149999999
9,59999999999998 62,9718719999999
9,69999999999998 63,6278289999999
9,79999999999998 64,2837859999999
9,89999999999998 64,9397429999999
9,99999999999998 65,5956999999999
Tout est bien exécuté par palier de 0,1 jusqu'à 5,9. Et ensuite au lieu de passer à 6, il passe à 5,999999999998, puis 6,099999999998, puis 6,19999999999998.... et non 6; 6,1; 6,2........
Une explication? Une idée?
Merci pour votre aide.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Petit problème (en plein milieu) lors de l’exécution du programme
- Trier du plus petit au plus grand excel - Guide
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Petit 2 ✓ - Forum Bureautique
- Comment imprimer une photo en petit - Forum Photo numérique
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
il est recommandé d'ajouter
l'ordinateur travaillant en binaire et pas en décimal, cela introduit ce qui peut apparaître comme des erreurs d'arrondis.
je pense qu'il est facile d'y remédier en déclarant euros ainsi:
il est recommandé d'ajouter
Option Expliciten début de module, ce qui impose de déclarer les variables.
l'ordinateur travaillant en binaire et pas en décimal, cela introduit ce qui peut apparaître comme des erreurs d'arrondis.
je pense qu'il est facile d'y remédier en déclarant euros ainsi:
Dim euros As Currency