Aller au contenu

Mise en place de calculs


Atari45

Recommended Posts

Posté(e)

Bonjour,

 

Je développe un application Android et je rencontre quelques soucis..

 

Je cherche à mettre en place des calculs avec des variables editText

float hte = Float.parseFloat(ht.getText().toString());
float nbObjDiste = Float.parseFloat(nbObjDist.getText().toString());
float nbFocalLene = Float.parseFloat(nbFocalLen.getText().toString());
	            	
nbObjSize2.setText(String.valueOf(hte * (nbObjDiste / nbFocalLene - 1)));

Le problème c'est des que je lance l’émulateur, l'application se coupe et ne fonctionne pas.. Les LogCat me dise un problème a la première ligne que je viens de vous fournir.

 

ht, nbObjDist et nbFocalLen sont 3 variables EditText déclaré comme ceci : ht = (EditText) findViewById(R.id.nb2);

 

Voila j’espère avoir été clair et espère un peu d'aide ;)

 

Merci

Posté(e)

Et que dit précisément le LogCat ? quelle est l'exception qui se produit ?

Posté(e)

Les LogCat :

 

- FATAL EXCEPTION : main

- at com.example.lenssensor.MainActivity$2.onClick(MainActivity.java:84   => correspond à la première ligne du post du dessus.

 

Et quand je lance l'appli, la premiere Activity se lance. Et des que j'appuie sur un bouton radio, "Unfortunately, lesSensor has stopped"

Posté(e)

Il manque l'information principale : quelle est l'exception qui s'est produite ? Tu peux mettre un extrait plus important du log ?

Posté(e)

FATAL EXCEPTION : main

java.lang.NumberFormatException : Invalid float: ""

at java.lang.StringToReal.invalid(StringToReal.java:63)

at java.lang.StringToReal.parseFloat(StringToReal.java:289)

at java.lang.Float.parseFloat(Float.java:300)

at java.lang.Float.valueOf(Float.java:337)

at com.example.lenssensor.MainActivity$2.onClick(MainActivity.java:84

at android.view.View.performClick(View.java:4204)

... Et encore quelques erreurs at android

 

J'ai fais un imprim ecran mais je sais pas comment le mettre dans la réponse alors j'ai copier les premières lignes du LogCat

Posté(e)
java.lang.NumberFormatException : Invalid float: ""

Ta conversion en float n'est pas possible si le editText est vide.

 

edit : Petite astuce au passage, si tu veut que la valeur vide soit 0, utilise un try catch 

Posté(e)

Ok cela veut dire que : float hte = Float.parseFloat(ht.getText().toString()); est vide...

 

Pourtant la variable ht comporte quelque chose... Hmm bizarre ça !

 

edit : J'ai comme logcat apres un autre essai : java.lang.NumberFormatException: Invalid float "3,600"

Posté(e)

Ta valeur doit être formatée de cette manière 3.600.

Pense à mettre l'inputType de ton editText en numeric, l'utilisateur ne pourra rentrer que des valeurs numériques valables de cette manière.

Y'a plusieurs manières de le faire je te laisse chercher sur google ;-)

Posté(e)

Mon inputType est  : android:inputType="numberDecimal" donc deja en type numeric

 

edit : j'ai changé mes valeurs en mettant des point au lieu des virgules, j'effectue un Toast de "ht" et j'obtiens 3.000

Ensuite, j'aimerais faire un calcul avec 3 variables que l'utilisateur rentre.

 

Ces 3 valeurs sont des EditText et j'aimerais qu'un calcul se fasse et mette la valeur obtenue dans un EditText... 

 

Quel sont vos propositions ?

Posté(e)

Bon fini de reflechir.. Sujet résolu.

 

Il suffisai de mettre des points à la place des virgules comme le disai FEMTO et merci également à CHPIL d'avoir commencé à m'aider.

 

Bonne soirée a tous et vive Android ;)

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...