Problème calcul calculatrice
Absot
Messages postés
819
Statut
Membre
-
Utilisateur anonyme -
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?
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:
- Problème calcul calculatrice
- Calculatrice gratuit - Télécharger - Calcul & Conversion
- Calcul km marche à pied gratuit - Télécharger - Sport
- Installer calculatrice - Télécharger - Calcul & Conversion
- Calcul moyenne excel - Guide
- Ma-calculatrice - Télécharger - Calcul & Conversion
4 réponses
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
http://www.javamafia.com/index.php?newsid=36
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
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
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
J'utilise ces méthodes:
- resultatDouble = Float.parseDouble(resultatString); // converti de string en double
- resultatString = String.valueOf(resultatDouble); // converti de double en string
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.
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.