HELP ! Projet java

Je dois dans le cadre d’un projet java, mettre un String dans une variable déclarée precedemment en float. A la compile, en utilisant la méthode Float.parseFloat() je n’ai aucun problème et à l’éxécution j’obtiens le message suivant :

java.lang.NumberFormatException: For input string: “*”
 at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
 at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1207)
 at java.lang.Float.parseFloat(Float.java:222)
 at EditionFacturesEmportees.art_trouver(EditionFacturesEmportees.java:110)
 at EditionFacturesEmportees.creationFactureEmportees(EditionFacturesEmportees.java:

 at TestFacture.main(TestFacture.java:12)

Si quelqu’un est en mesure de m’indiquer ne serait ce que la méthode à utiliser …

Merci d’avance

Salut !

Ton code n’est pas a mettre en faute (quoique… , mais selon l’API java :

parseFloatpublic static float [b]parseFloat[/b](String s) throws NumberFormatException

Returns a new float initialized to the value represented by the specified String, as performed by the valueOf method of class Float.

Parameters:
s - the string to be parsed.
Returns:
the float value represented by the string argument.
Throws:
NumberFormatException - if the string does not contain a parsable float.[/quote]L’erreur vient simplement du fait que tu essai de convertir en float des caractères qui ne peuvent pas l’être !!! ( “12,234” est une chaîne valide, mais “34%” ne l’est pas par exemple )

Plusieurs solutions s’offrent a toi pour remédier a ce problème :

  1. relever l’exception et demander a l’utilisateur de saisir après-coup une chaine correcte
  2. vérifier avant d’appeller ta méthode que la chaine est correcte
  3. il existe peu-etre une super-solution-de-la-mort, mais demande a un guru Java de te la donner, moi je la connais pas !

Bon courage pour ton programme, et bon code !

-Griim-

Merci Griim. Je teste !!!

Euh sinon, histoire de dire une connerie, si tu force la déclaration en mettant:
[ta fonction]( (String) [ton paramètre])

ça peut aider ? ^^;

Sinon, patapé ! Je disais juste ça pour aider hein ?

la méthode est : Float.valueOf(string s)

edit enfin, teste quand même… sinon tu peux tester la string avec isNan(String s)
Ce message a été édité par kaneloon le 07/12/2003

Ou alors faire de la gestion d’erreur avec try catch

J’ai déjà testé ces methodes et malheureusement à l’ execution j’ai toujours un “java.lang.NumberFormatException”  !!

Je ne vois toujours pas comment mettre des étoiles dans des variables déclarées de type float !!

j’ai aussi essayé de prendre mon problème à l’envers, déclarer mes variables en String etutiliser les méthodes parse et valueOf sur les variables calculables. UN ECHEC !!!

Merci pour vos réponses.

Ce message a été édité par MaudiTe le 07/12/2003
Ce message a été édité par MaudiTe le 07/12/2003

[quote]Je dois dans le cadre d’un projet java, mettre un String[/quote]Sympas, les projets ou il faut mettre eds String avant de faire la Java… C’est ou, qu’on s’inscrit ?
Hein ? Bon, ok, j’arrête les blagues à deux balles

Sinon, plus sérieux :

[quote]java.lang.NumberFormatException: For input string: “*”[/quote]La réponse est dans la question : la chaine que tu essayes de transformer en flottant, c’est un Astérix (pas la peine de faire un message sur l’orthographe, c’est fait pour ).

Ah tiens, je viens juste de voir cette phrase là (désolé, c’est mon habitude : répondre, pis après seulement lire…)

[quote]Je ne vois toujours pas comment mettre des étoiles dans des variables déclarées de type float !![/quote]Si tu veux vraiment mettre une étoile (*) dans une variable Float, pas la peine de continuer à chercher, t’es mal parti, y aura jamais moyen…
Ce message a été édité par zeKam le 08/12/2003

[quote]Ah tiens, je viens juste de voir cette phrase là (désolé, c’est mon habitude : répondre, pis après seulement lire…)

[quote]Je ne vois toujours pas comment mettre des étoiles dans des variables déclarées de type float !![/quote]Si tu veux vraiment mettre une étoile (*) dans une variable Float, pas la peine de continuer à chercher, t’es mal parti, y aura jamais moyen…
Ce message a été édité par zeKam le 08/12/2003[/quote]ah oui, évidemment, vu comme ça…

  • n’est pas un chiffre… donc forcément il aime pas…