Problème calcul calculatrice

Absot Messages postés 819 Statut Membre -  
 Utilisateur anonyme -
Bonjour, je suis en train de créer une calculatrice graphique en java j'ai un problème pour calculer..

J'ai donc créer mes JButton ()1, 2, .., +, -, *, /) et à chaque fois que l'on clique sur des JButton, ça ajoute à mon resulstatString type String) la valeur du JButton et ça modifie la valeur de mon JLabel (là où l'on voit le résultat).

Dès que j'appuie sur mon JButton "=", je convertis mon resultatString en double et je le récupère dans un double que je reconvertis ensuite en String et que je récupère avec resultatString et que j'affiche dans mon JLabel mais à ce moment là, j'ai un NumberFormatException et je ne comprends pas pourquoi puisque quand je fais afficher directement 1+1 par exemple sans passer par toutes mes étapes, ça fonctionne...

Comment ça se fait?
A voir également:

4 réponses

Developpeur
 
Voilà un exemple de calculatrice graphique codée en java (e développement d'interfaces graphiques avec SWING)
http://www.javamafia.com/index.php?newsid=36
1
Absot Messages postés 819 Statut Membre 44
 
Personne ne sait svp?
0
monsieurchpasseparla
 
je n'y connais rien ,attention c'est du php

Si vous voulez forcer une variable à être convertie en un certain type, vous devez transtyper ( cast )
la variable ou utiliser la fonction settype .

parceque

$bool = TRUE; // un booléen
$str = 'foo'; // une chaîne de caractères
$int = 12; // un entier

vraiment par solidarité j'ais lu ca dans une doc ,bonne chance
0
Absot Messages postés 819 Statut Membre 44
 
En convertissant, je le cast..

J'utilise ces méthodes:
- resultatDouble = Float.parseDouble(resultatString); // converti de string en double
- resultatString = String.valueOf(resultatDouble); // converti de double en string
0
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
est-ce que tu essayes de convertir en double l'expression "1+1" écrite dans la calculette ?

Alors en effet ça ne peut pas marcher car la conversion c'est pour UN nombre.
Il faut stocker séparément le premier nombre et le deuxième et ensuite les convertir, et stocker l'opération sélectionnée dans une variable, et selon la valeur de cette dernière faire l'addition, la soustraction, etc... séparément, c'est le plus simple.

A la manière des calculettes classiques en quelque sorte : d'abord on entre le deuxième nombre, puis on tape l'opération, et on entre le deuxième nombre indépendamment (sur les calculettes "classiques" on voit bien qu'après l'opération, le premier nombre disparait de l'affichage, mais est gardé en mémoire pour l'opération).

PS : d'autre part, c'est Double.parseDouble(...) non ?

et PPS : lorsque tu marques directement dans le code : 1+1 , il calcule bien 2, car ce code est compilé en tant qu'opération, de véritable calcul (comme un appel à une fonction qui calcule la somme de deux nombres), java ne considère pas ça comme une chaine qu'il essayerait de convertir en double avec parseDouble.
0
Utilisateur anonyme
 
Salut,

Alors pourquoi (Float)
resultatDouble = Float.parseDouble(resultatString); // converti de string en double

qui ne compilera pas,

Et pas
resultatDouble = Double.parseDouble(resultatString); // converti de string en double


Cordialement,

Dan
0