bonjour, je travail sur un monnayeur et quand le prix est de 499,99€ si je donne 500€ la monnaie est de : 0,00999989826281819999, je voudrais seulement 0,01 et je trouve pas mon problème. Pouvez vous m'aider ?

voici une partie du code qui fonctionne pas :

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
                int u500;
                u500 = Convert.ToInt32(mainForm.l500.Text); // u500 est le nombre de billet de 500 que j'ai dans ma caisse 
                int c500 = 0;  // c500 est initiée a 0 ailleurs et est le nombre de billet de 500 qu'on doit rendre   
                double Lm;
                Lm = Convert.ToDouble(mainForm.lMonnaie.Text); // valeur rentrée sur un label (lMonnaie) dans un autre form (mainForm )
 while (Lm >= 500)
                {
 
                    if (u500 >= 1)  
                    {
                        u500 = u500 - 1;
                        c500 = c500 + 1; 
                        Lm = Lm - 500;
                        int t = int.Parse(mainForm.l500.Text);// nb de billet dans la  caisse 
                        int s = t - 1;// nb de billet de caisse -1
                        mainForm.l500.Text = s.ToString();
                    }
                    if (u500 == 0)
                    {
                        break;
                    }
                }
                if (c500 >= 1) { mainForm.lmonnayeur.Text += "\nBillet de 500€ :" + c500; }
et après c'est exactement pareille mais avec 200 ; 100 ; 50 ; 20 ; 10 ; 2 ; 1 ; 0,5 ; 0,2 ; 0,1 ; 0,05 ; 0,02 ; 0,01

merci de votre aide