Simple division [Résolu]

Ulrichleboss 511 Messages postés dimanche 20 juillet 2008Date d'inscription 14 mai 2016 Dernière intervention - 7 août 2014 à 19:45 - Dernière réponse : Whismeril 12023 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 septembre 2018 Dernière intervention
- 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 ?
Afficher la suite 

Votre réponse

1 réponse

Whismeril 12023 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 septembre 2018 Dernière intervention - 7 août 2014 à 20:10
0
Merci
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("#.##");
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.