Simple division

Résolu
Ulrichleboss Messages postés 502 Date d'inscription dimanche 20 juillet 2008 Statut Membre Dernière intervention 14 mai 2016 - 7 août 2014 à 19:45
Whismeril Messages postés 19039 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 mai 2024 - 7 août 2014 à 20:10
Bonjour,

J'ai 4 numericUpDown et j'aimerais diviser la somme de deux d'entre eux quand leur valeur change

numericUpDown3 et 4 sont entre eux.
numericUpDown5 et 6 sont entre eux.

Quand la valeur du numericUpDown3 change :

if (numericUpDown3.Value >= 0)
{

}
else
{
decimal cal = (numericUpDown3.Value / numericUpDown4.Value);
string result1 = cal.ToString("#.##");
label30.Text = result1;
}

Pour le 4 :

if (numericUpDown4.Value == 0)
{

}
else
{
decimal cal = (numericUpDown3.Value / numericUpDown4.Value);
string result = cal.ToString("#.##");
label29.Text = result;
}

Pour le 5 et 6 c'est le même code ( en modifiant les numéros des numericUpDown )

Quand je clique sur mon bouton pour avoir les numéro qui s'affichent, j'obtiens une erreur me disant que les divisions ne peuvent pas être faites avec le chiffre 0, pourtant j'ai mis " if (numericUpDown4.Value == 0)" je ne devrais pas avoir cette erreur non ?

1 réponse

Whismeril Messages postés 19039 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 7 mai 2024 656
7 août 2014 à 20:10
Bonsoir déjà tu devrais faire une seule méthode pour chaque couple de numericUpDown, ça évite les copier coller ratés et de devoir corriger deux fonctions quand il y a un bug. Tu écris la méthode pour l'un des deux et pour abonner le second à cette méthode fais comme sur cette capture


Par ce que là dans le 3 tu ne testes pas la valeur du 4 or 0/n est possible alors que n/0 ne l'est pas.

ensuite au lieu de

if (numericUpDown4.Value == 0)
            {
                //y'a rien ici!!
            }
            else
            {
                decimal cal = (numericUpDown3.Value / numericUpDown4.Value);
                string result = cal.ToString("#.##");
                label29.Text = result;
            }


if (numericUpDown4.Value != 0)
            {
                 decimal cal = (numericUpDown3.Value / numericUpDown4.Value);
                string result = cal.ToString("#.##");
                label29.Text = result;
            }



enfin tu peux réduire un peu le nombre de lignes, comme ça
if (numericUpDown4.Value != 0)
            {
                 decimal cal = (numericUpDown3.Value / numericUpDown4.Value);
                label29.Text = cal.ToString("#.##");
            }


voire vu que cal ne peut pas être utilisé ailleurs:
if (numericUpDown4.Value != 0)
                label29.Text = (numericUpDown3.Value / numericUpDown4.Value).ToString("#.##");
0
Rejoignez-nous