2016-04-15 8 views
-5

Ich habe BMI-Rechner-App, die einige Eingaben nimmt und legt sie in "EditText". Hier ist, was ich versuche zu tun:
Wenn der Eingang 170 ist, wird es 1.70 werden.
Wenn der Eingang 1.70 ist, wird er nicht geändert.Setzen Sie Punkt in Zeichenfolge Wert (Android Java)

Dies ist der Code, den ich habe:

String weight = editText.getText().toString(); 

Antwort

0

Cant Sie die Zeichenfolge in eine ganze Zahl konvertieren und Modul 100 in das CMS und dividieren nehmen von 100 zu erhalten in Metern?

Sie können das Streichgewicht wie diese

int wgt = Integer.parseInt(weight); 

Dann Meter und Zentimeter in int konvertieren zu trennen.

int mtrs = wgt/100; 
int cms = wgt % 100; 

Dann beide kombiniert

String result = mtrs + "." + cms; 
+0

Ich verstehe das nicht. Kannst du mir das erklären? –

+0

Sie können das 'String weight' konvertieren wie dieses' int wgt = Integer.parseInt (Gewicht) auf int; ' ' int mtr = WGT/100; '' int cms = wgt% 100; ' ' String Ergebnis = mtrs + "." + cms; ' – jgm

+0

@ דדעזעזעזא funktioniert es? Es sollte funktionieren. – jgm

0

versuchen so etwas wie dieses

float value = Float.parse("170"); 
editText.setText(String.Format(Locale.ENGLISH,"%,02f", value/100f)) 
+0

sein sagen "kann nicht Methode auflösen parse (java.lang.String)" " –

+0

es heißt parseFloat, ich sollte nicht in Chrome entwickeln :-) http://developer.android.com/reference/java/lang/Float.html# parseFloat (java.lang.String) –

+0

und Sie müssen einige hinzufügen, wenn zum Beispiel 'if (Wert <100) // dividiere nicht durch 100 ' –

0

ich auf diese Weise gefunden funktioniert: Ich nehme die Zahl, die der Benutzer gesteckt, und dann „170/100“ + „0“ gibt mir 1,70

Verwandte Themen