Convertir un string en float
Résolu
miloko22
Messages postés
32
Statut
Membre
-
miloko22 Messages postés 32 Statut Membre -
miloko22 Messages postés 32 Statut Membre -
bonjour,
j'utilise un jtable qui contient des String et des Float
j'ai besoin de convertir leur contenue en float
j'ai utilisé cette fonction mais ça na pas marché
String min1 =(table.getValueAt(0,0).toString());
System.out.println("min=1"+min1);
System.out.println("ccoucou="+Float.valueOf(min1.trim().floatValue());
Pourriez vous m'aider ?
merci beaucoup.
j'utilise un jtable qui contient des String et des Float
j'ai besoin de convertir leur contenue en float
j'ai utilisé cette fonction mais ça na pas marché
String min1 =(table.getValueAt(0,0).toString());
System.out.println("min=1"+min1);
System.out.println("ccoucou="+Float.valueOf(min1.trim().floatValue());
Pourriez vous m'aider ?
merci beaucoup.
4 réponses
-
Bonjour,
System.out.println("coucou="+Float.valueOf(min1));devrait suffire. -
bonjour,
j 'ai essayé de les remplacer par des numéro
je lit un fichier .txttry{ InputStream ips=new FileInputStream(fichier); InputStreamReader ipsr=new InputStreamReader(ips); BufferedReader br=new BufferedReader(ipsr); String ligne; j=0; k=0; while ((ligne=br.readLine())!=null ) { //System.out.println("la ligne est "+ligne); tab1= ligne.split(","); for(i=0;i<tab1.length;i++) { // System.out.println("attribut= "+tab1[i]); if(tab1[i]=="sunny") tab1[i]="5"; if(tab1[i]=="overcast") tab1[i]="4"; if(tab1[i]=="rainy") tab1[i]="5"; tab[k][i]=tab1[i]; } k++; }
mais ça n as pas marché-
Tu ne peux pas comparer la valeur de deux String avec
==
c'est uniquement fait pour comparer l'égalité des deux références, savoir si c'est le même objet, mais puisque les objets sont issus d'un split ils seront forcément différents, il vaut donc mieux utiliser la méthode equals
for(i=0;i<tab1.length;i++) { // System.out.println("attribut= "+tab1[i]); if (tab1[i].equals("sunny") tab1[i]="5"; else if(tab1[i].equals("overcast") tab1[i]="4"; else if(tab1[i].equals("rainy") tab1[i]="5"; tab[k][i]=tab1[i]; }
Si tu es en Java 7 tu peux aussi faire un switch sur tes valeurs :
for(i=0;i<tab1.length;i++) { // System.out.println("attribut= "+tab1[i]); String str = tab1[i]; switch (tab1[i]) { case "sunny": case "rainy": str="5"; break; case "overcast": str="4"; break; } tab[k][i]=str; }
En terme de conception on pourrait même faire encore mieux, en faisant un enum qui prendrait chacun de tes cas et leur valeur associée.
enum Toto { SUNNY(5), RAINY(5), OVERCAST(4); private final int n; Toto(int value) { n = value; } public int getValue() { return n; } } public static String getTotoValue(String str) { try { Toto toto = Toto.valueOf(str.toUpperCase()); int n = toto.getValue(); return String.valueOf(n); } catch (Exception e) { return str; } } for(i=0;i<tab1.length;i++) { tab[k][i] = getTotoValue(tab1[i]); }
Evidemment, il serait plus logique de gérer directement tes float avec l'un ou l'autre de ces mécanismes plutôt que de passer par un String intermédiaire.
-
-
bonjour,
j ai fait ça
while ((ligne=br.readLine())!=null )
{
//System.out.println("la ligne est "+ligne);
tab1= ligne.split(",");
for(i=0;i<tab1.length;i++)
{
System.out.println("attribut= "+tab1[i]);
String str1=tab1[i];
String str2="sunny";
if(str1.equals(str2))
{tab1[i]="5"; System.out.println("ok");
}
et ça marché :) -