Bonjour à tous,

Je suis sur une partie de mon programme, où j'aimerai pouvoir sur un nombre X, séparer les unités, les dizaines, les centaines, les milliers, etc...

je vous mets le bout du programme qui me pose soucis. Voilà par exemple, si je rentre 123, mon programme fonctionne !!!, mais si je rentre 873 (ca plante).. .

J'ai remarqué avec le déboggeur que lors de ma première division, le 8 passe en 9, ce qui va me faire fausser mon calcul par la suite et va tourner à l'infini dans ma 2ème boucle...

Voici mes questions : Y a-t-il un algorithme ou je puisse m'inspirer ? La division en programmation est-elle justicieuse, ou y a-t-il d'autres procédés ?
Est-ce qu'il y a un tuto parlant de ces principes de divisions ou des calculs entres float et entier...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
 
    Dim Val_CC as Long 
    Dim Val_Int As Integer
    Dim Indice_Barre As Integer
 
    Val_Int = Val_CC / Val_Div
 
    Do While Val_Int > 9 Or Val_Int < 1
 
        If Val_Int = 0 Then
            Val_Div = Val_Div / 10
            Val_Int = Val_CC / Val_Div
        Else
            Val_Div = Val_Div * 10
            Val_Int = Val_CC / Val_Div
        End If
 
    Loop
 
    Indice_Barre = 1
 
    Code_couleur Val_Int, Indice_Barre
 
    Val_CC = Val_CC - (Val_Int * Val_Div)
 
    Val_Div = Val_Div / 10
 
    Val_Int = Val_CC / Val_Div
 
    Do While Val_Int > 9 Or Val_Int < 1
 
        If Val_Int = 0 Then
            Val_Div = Val_Div / 10
            Val_Int = Val_CC / Val_Div
        Else
            Val_Div = Val_Div * 10
            Val_Int = Val_CC / Val_Div
        End If
 
    Loop
 
    Indice_Barre = 2
 
    Code_couleur Val_Int, Indice_Barre
 
    Val_CC = Val_CC - (Val_Int * Val_Div)
 
    Val_Div = Val_Div / 10
 
    Val_Int = Val_CC / Val_Div
 
    Do While Val_Int > 9 Or Val_Int < 1
 
        If Val_Int = 0 Then
            Val_Div = Val_Div / 10
            Val_Int = Val_CC / Val_Div
        Else
            Val_Div = Val_Div * 10
            Val_Int = Val_CC / Val_Div
        End If
 
    Loop
 
    Indice_Barre = 3
 
    Code_couleur Val_Int, Indice_Barre
Si il y a des erreurs grossières dites-le moi...

Je vous remercie pour m'avoir lu...

Amicalement Philou