IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Problème de conversion String en Float avec JTable


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 16
    Points
    16
    Par défaut Problème de conversion String en Float avec JTable
    Bonjour,

    Voici mon problème : Ma JTable, utilisée pour faire des calculs concernant une facture, me pose problème.

    En effet lorsque l'utilisateur saisi une valeur dans le champ quantité puis dans le champs Prix unitaire HT, il se peut que le montant total HT soit un nombre flottant. Lorsque ce resultat est affiche dans le champs montant, tout se passe bien. Cependant, j'ai besoin de récuperer la valeur de ce champs afin de pouvoir calculer le montant Total HT. Or quand je le récupere sous format String, tout va bien mais des que je veux le convertir en float pour faire des calcul, il me lance une exception : voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
         float Val_TotalHT = 0;
         for(int i = 0; i < 6; i++)
         {
    	  TableModel T = vue.Table.getModel();
     
    	   if(String.valueOf(vue.Table.getModel().getValueAt(i, 6)).compareTo("") != 0)
    	   {
        //Tableau qui contient la liste des valeurs a additionner          
                      temp[i] = String.valueOf(T.getValueAt(row, 6));
     
       // Voici la ligne qui me renvoie l'exception NumberFormatException
       //Car elle contient une virgule, si c'est un compte rond, aucune exception n'est lancée
                      Val_TotalHT += Float.parseFloat(temp[i]);
    	   }
         }      	
        modele.setTotHT(Float.parseFloat(temp[0]));
    vue.TXT_TOT_HT.setText(String.valueOf(Val_TotalHT));
    Je ne sais plus quoi faire j'ai meme essayé avec BigDecimal, auriez vous une idée car ca fait presque une semaine que je bloque. Merci

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    C'est peut être un problème de , et de .
    Essaye ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Val_TotalHT += Float.parseFloat(temp[i].replace(',','.'));
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Merci d'avoir répondu mais malhereusement j'avais deja essaye d'utiliser la methode replace mais sans succes.

    Effectivement le probleme vient de la virgule car si je change et que je met un point manuellement dans le champs il ne me retourne plus d'erreur.

    Le truc c'est que même sans faire de calcul ( += ), en voulant juste convertir le contenu en float il me retourne une erreur

  4. #4
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Est ce que tu as mis le replace sur les 2 endroits ou il y a un parseFloat
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    OUAAA, merci beaucoup.

    Ca je comprend vraiement pas mais bon faut croire que ca venait de là. Merci beaucoup et désolé de vous avoir dérangé pour si peut mais j'avais vraiement tout essayé entre les .charAt() et les subString tout y est passé, même le remplacement à la main de la virgule ( CF C++ ).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion String en Float (Flottant avec point)
    Par kracter56 dans le forum Débuter
    Réponses: 3
    Dernier message: 31/05/2012, 13h47
  2. tentative conversion string vers float
    Par firemax dans le forum C
    Réponses: 10
    Dernier message: 21/08/2007, 17h42
  3. Conversion string en float
    Par jyerfr dans le forum C#
    Réponses: 5
    Dernier message: 13/06/2007, 09h06
  4. convertir un string en float avec un format
    Par kisscool62 dans le forum C++/CLI
    Réponses: 2
    Dernier message: 04/12/2006, 14h13
  5. Problème de conversion string->int
    Par seheiahs dans le forum Langage
    Réponses: 4
    Dernier message: 28/06/2006, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo