2012-05-24 11 views
18

Eventuali duplicati:
String from EditText to floatCome convertire stringa in valore float in Android

In applicazione voglio convertire la stringa immessa nella casella di modifica per il valore corrispondente come 233243664376347845.89 al corrispondente valore fluttuante. Ma restituisce come IE10 dopo un certo numero, ad esempio 23324366IE10 Please help me. Il mio codice è -

NumberFormat format = NumberFormat.getInstance(Locale.US); 

try 
{ 
    number = format.parse(e1.getText().toString()); 
} catch (ParseException e) 
{ 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

La modifica lunghezza del testo è maggiore di 20 cifre, anche io voglio meno due valori float di modifica di testo ...

+0

Provare un valore 'double'. – Stephan

+0

usa Float.valueOf (String): http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Float.html#valueOf%28java.lang.String%29 – Blackbelt

+1

Il 'doppio 'value (non è un' float') viene analizzato bene. Il problema è che non è * visualizzato * a destra. Dov'è il codice che stampa il 'numero'? – Jon

risposta

41
String s = e1.getText().toString(); 
Float f= Float.parseFloat(s); 
+2

Devi prendere NumberFormatException in caso di guasti. –

14

questo risolverà il problema:

String str=e1.getText().toString(); 
number = Float.parseFloat(str); 
0

Prova questo.

EditText edt = (EditText) findViewById(R.id.edit_float); 
float number = Float.valueOf(edt.getText().toString()); 

si utilizza il metodo valueOf() se la classe Float wrapper per convertire una stringa in un float. In questo esempio ottengo l'oggetto modificabile di EditText con getText() su cui chiamo il metodo toString() per ottenere una stringa da esso.

+0

funziona solo a 6 cifre, inseriremo più di 6 cifre significa che mostra 6857841E10 – user1235251

Problemi correlati