Probleme addition & variables

nonoz Messages postés 57 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 23 juin 2004 - 16 juin 2004 à 11:09
nonoz Messages postés 57 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 23 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?

merci d'avance

+++++++++++++++++

package calc;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;

public class Applet1 extends Applet {

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() {

try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
/**Initialiser le composant*/
private void jbInit() throws Exception {
fondcalc.setLayout(gridBagLayout1);

boutons mazoneboutons=new boutons(this);

jLabel1.setBackground(Color.white);
jLabel1.setOpaque(true);
jLabel1.setPreferredSize(new Dimension(72, 15));
jLabel1.setVerifyInputWhenFocusTarget(true);
jLabel1.setHorizontalAlignment(SwingConstants.RIGHT);
jLabel1.setHorizontalTextPosition(SwingConstants.RIGHT);
jLabel1.setVerticalTextPosition(SwingConstants.CENTER);

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;
}

resultb = 0;
}
//----------------------------------------------------------------------------------------
}
+++++++++++++++++++++++++

%-6

4 réponses

nonoz Messages postés 57 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 23 juin 2004
16 juin 2004 à 11:16
%-6
0
nonoz Messages postés 57 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 23 juin 2004
16 juin 2004 à 11:17
Desole pour les messages en double j'ai eu un probleme d'envoie... :(
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
16 juin 2004 à 13:43
Salut,

questin bête : à quel moment result est remis à zéro ?
0
nonoz Messages postés 57 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 23 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
0
Rejoignez-nous