nonoz
Messages postés57Date d'inscriptionmercredi 29 janvier 2003StatutMembreDernière intervention23 juin 2004
-
16 juin 2004 à 11:09
nonoz
Messages postés57Date d'inscriptionmercredi 29 janvier 2003StatutMembreDernière intervention23 juin 2004
-
16 juin 2004 à 14:51
Salut,
alors la je comprends rien.
j'ai fait une calculatrice.
Je fais un appel a une fonction qui est sence additionner deux variables (case '+' ) . Jusque la tout va bien sauf que a chaque fois ma variable est multiplie par deux.
J'ai l'impression que quand je fais
result =result + a
en fait il me fait
result += result +a
et je comprend pas pourquoi
ci joint mon code si vous voyez mon erreur (je suppose que c'est un truc du genre ma varible doit etre prive ou un truc comme ca... :( )
je sais pas si je suis clair?
boolean isStandalone = false;
JPanel fondcalc = new JPanel();
GridBagLayout gridBagLayout1 = new GridBagLayout();
JLabel jLabel1 = new JLabel("Bonjour !");
String chiffre = "";
boolean bool = false;
private double result = 0;//contient la valeur du calcul en cours
char operateur = 'p';//contient la valeur de l'operateur
/**Obtenir une valeur de paramètre*/
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
/**Construire l'applet*/
public Applet1() {
}
/**Initialiser l'applet*/
public void init() {
fondcalc.setBackground(SystemColor.control);
fondcalc.setPreferredSize(new Dimension(300, 300));
fondcalc.add(jLabel1, new GridBagConstraints(0, 0, 3, 1, 0.0, 0.0
,GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 0, 5, 0), 123, 0));
fondcalc.add(mazoneboutons, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0
,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
this.add(fondcalc, null);
}
/**Obtenir les informations d'applet*/
public String getAppletInfo() {
return "Information applet";
}
/**Obtenir les informations de paramètre*/
public String[][] getParameterInfo() {
return null;
}
/** Affichage du résultat */
private double resultb =0.0;
private void resultat(char val)
{
switch (val) {
case 'O':
result = 0;
chiffre = "";
jLabel1.setText(""+result);
break;
case '+': //marche pas.... :(
double resulta = Double.parseDouble(chiffre);
resultb =resulta +resultb;
result=resulta+result;
jLabel1.setText(" "+result+" b "+resultb+" a "+resulta);
// resultb -> = valeur de resulta c normal
// result = 2* result + resulta -> c pas normal... :(
bool = false;
operateur = '+';
break;
case '-':
operateur = '-';
break;
case '*':
operateur = '*';
break;
case '/':
operateur = '/';
break;
default:
if(bool == true){
chiffre = chiffre + val;
}else{
chiffre = ""+val;
bool = true;
}
jLabel1.setText(""+chiffre+"result"+result);
break;
}
nonoz
Messages postés57Date d'inscriptionmercredi 29 janvier 2003StatutMembreDernière intervention23 juin 2004 16 juin 2004 à 14:51
Ben non justement je ne veux pas que result soit remis a zero au contraire il doit garder en memoire le resultat du calcul precent auquel je vais ajouter soustraire... la valeur de resulta