Pb de convertion [Résolu]

cococo84 72 Messages postés mercredi 21 septembre 2005Date d'inscription 13 janvier 2006 Dernière intervention - 19 oct. 2005 à 09:23 - Dernière réponse : cs_poullos 145 Messages postés lundi 13 janvier 2003Date d'inscription 27 décembre 2005 Dernière intervention
- 19 oct. 2005 à 15:57
bonjour,

g un ti pb : Math n'accepte que les double or frm.a1.Value et frm.Z11.Value etc sont des numericupdown(décimal) donc il y a un pb de convertion.comment puis harmoniser tout ca svp?
merci d'avance

public double dw1()
{
Verifavecfonct frm;
double dw1;
mwt1 = (2 * Math.Cos(frm.a1.Value)) / (frm.Z11.Value + frm.Z21.Value);
dw1 = mwt1 * frm.Z11.Value;
return dw1;
}

les messages d'erreur sont les suivant :
Impossible de convertir implicitement le type 'decimal' en 'double'
Et
L'opérateur '*' ne peut pas être appliqué aux opérandes de type 'double' et 'decimal'
L'opérateur '/' ne peut pas être appliqué aux opérandes de type 'double' et 'decimal'
Afficher la suite 

9 réponses

Répondre au sujet
cs_poullos 145 Messages postés lundi 13 janvier 2003Date d'inscription 27 décembre 2005 Dernière intervention - 19 oct. 2005 à 15:26
+3
Utile
Si tu ne veux pas te prendre la tête a passer les formes en parametre
tu mets carrement ton numericUpDown en static dans ta premiere forme :



public class Form1

{

static public NumercicUpDown nud1 = new numericUpDown();

}



public class Form2

{

...

public NumericUpDown nud2 = Form1.nud1;

...

}




Si tu veux faire propre tu fais:



public class Form1


{


public NumercicUpDown nud1 = new numericUpDown();



...

Form2 frm = new Form2(this);


}





public class Form2


{

private Form1save;



public Form2(Form1 frm)

{

save = frm;

}




...

public double dw1()

{

mwt1 = (2 *
Math.Cos((double) save.a1.Value)) / (double) (save.Z11.Value
+
frm.Z21.Value)



dw1 = mwt1 * (double) save.Z11.Value;

}

...


}



En esperant que ca marche ...


La brigade meurt mais ne se rend pas (Hisoka)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_poullos
cs_poullos 145 Messages postés lundi 13 janvier 2003Date d'inscription 27 décembre 2005 Dernière intervention - 19 oct. 2005 à 09:27
0
Utile
Ben t'as essayé de caster en double ???



mwt1 = (2 * Math.Cos((double) frm.a1.Value)) / (double) (frm.Z11.Value + frm.Z21.Value)



dw1 = mwt1 * (double) frm.Z11.Value;

La brigade meurt mais ne se rend pas (Hisoka)
Commenter la réponse de cs_poullos
cococo84 72 Messages postés mercredi 21 septembre 2005Date d'inscription 13 janvier 2006 Dernière intervention - 19 oct. 2005 à 09:34
0
Utile
ben qd je fais ça il me di "variable locale non assignée 'frm'"
Commenter la réponse de cococo84
cs_poullos 145 Messages postés lundi 13 janvier 2003Date d'inscription 27 décembre 2005 Dernière intervention - 19 oct. 2005 à 10:34
0
Utile
Ben c'est un peu normal, tu declares Verifavecfonct frm; et tu

l'assignes pas c'est un peu logique non ?



Je ne connais pas ta classe Verifavecfonct mais essaie

Verifavecfonct frm = new Verifavecfonct(); a la place et si ca ne marche pas

c'est que ton constructeur ne definit pas les champs que tu utilises.



Au pire montre ta classe Verifavecfonct je te dirais.

La brigade meurt mais ne se rend pas (Hisoka)
Commenter la réponse de cs_poullos
cococo84 72 Messages postés mercredi 21 septembre 2005Date d'inscription 13 janvier 2006 Dernière intervention - 19 oct. 2005 à 12:27
0
Utile
le problème c'est que ds ma classe verifavecfonct(c'est une winform) a d'autres controls numericupdown où c l'utilisateur qui saisi.dc si j'affiche une nouvelle winform verifavecfonct, les saisies utilisateur seront perdues.ou alors il faudrait les enregistrer?
Commenter la réponse de cococo84
cs_poullos 145 Messages postés lundi 13 janvier 2003Date d'inscription 27 décembre 2005 Dernière intervention - 19 oct. 2005 à 12:32
0
Utile
je ne sais pas tres bien ce que tu veux faire mais si tu ne veux qu'une seule

forme verifavecfonct, soit tu travailles directement dans ta forme et dans ce

cas la tu vires la ligne :

Verifavecfonct frm;

et au lieu d'ecrire frm. ...., tu ecris this . ...

soit tu t en sers dans d'autres classes et dans ce cas la tu passes ta form

directement en parametre du constructeur des autres classes , tu l'apelles frm

si tu veux et tu ecris directement frm. ... sans la redeclarer.



Si je me suis mal exprimé n'hesite pas redemander ce que tu ne comprends pas.

La brigade meurt mais ne se rend pas (Hisoka)
Commenter la réponse de cs_poullos
cococo84 72 Messages postés mercredi 21 septembre 2005Date d'inscription 13 janvier 2006 Dernière intervention - 19 oct. 2005 à 13:49
0
Utile
en fait je travail avec 2 formes et lorsque l'utilisateur saisi dans un numericupdown d'une forme, je n'arrive pas à récupérer cette valeur dans un numericupdown de l'autre forme.pourtant j'ai mis le numericupdown de la 1ère form en public.j'ai essayé plusieur trucs mais la 1ère forme ne reconnais pas la 2ème.
cmt fais ton pour que la forme reconnaisse le numericupdown de l'autre?
jespère m'etre bien exprimé
Commenter la réponse de cococo84
cococo84 72 Messages postés mercredi 21 septembre 2005Date d'inscription 13 janvier 2006 Dernière intervention - 19 oct. 2005 à 15:33
0
Utile
g appliquer la deuxième solution et ca marche dc jte remerci bcp poullos!!
Commenter la réponse de cococo84
cs_poullos 145 Messages postés lundi 13 janvier 2003Date d'inscription 27 décembre 2005 Dernière intervention - 19 oct. 2005 à 15:57
0
Utile
De rien mister, on a galeré mais finalement ca marche et c'est le principal

La brigade meurt mais ne se rend pas (Hisoka)
Commenter la réponse de cs_poullos

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.