2014-02-08 56 views
0

我正在開發一個應用程序,我在其中輸入兩個編輯文本的輸入類型是數字。Android:連接兩個字符串。並在浮動解析

我做的是:我在兩個字符串變量把輸入從兩個編輯文本(ED1,ED2)(S1,S2)爲:

EditText ed1 = (EditText) findViewById(R.id.ed1); 
String s1 = ed1.getText().toString(); 

EditText ed2 = (EditText) findViewById(R.id.ed2); 
String s2 = ed2.getText().toString(); 

concate這兩個變量:

String s3 = s1.concat(".").concat(s2); 

然後我試圖在浮動分析這些thired字符串變量(S3)爲:

float f = Float.parseFloat(s3); 

但我得到的錯誤是:

02-08 15:30:10.830: E/AndroidRuntime(30537): FATAL EXCEPTION: main 
02-08 15:30:10.830: E/AndroidRuntime(30537): java.lang.NumberFormatException 
02-08 15:30:10.830: E/AndroidRuntime(30537): at org.apache.harmony.luni.util.FloatingPointParser.initialParse(FloatingPointParser.java:160) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at org.apache.harmony.luni.util.FloatingPointParser.parseFloat(FloatingPointParser.java:319) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at java.lang.Float.parseFloat(Float.java:323) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at java.lang.Float.valueOf(Float.java:362) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at com.example.myapp.activity.MyActivity.onClick(MyActivity.java:97) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at android.view.View.performClick(View.java:2538) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at android.view.View$PerformClick.run(View.java:9152) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at android.os.Handler.handleCallback(Handler.java:587) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at android.os.Handler.dispatchMessage(Handler.java:92) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at android.os.Looper.loop(Looper.java:123) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at android.app.ActivityThread.main(ActivityThread.java:3691) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at java.lang.reflect.Method.invokeNative(Native Method) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at java.lang.reflect.Method.invoke(Method.java:507) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
02-08 15:30:10.830: E/AndroidRuntime(30537): at dalvik.system.NativeStart.main(Native Method) 

我想上面的字符串轉換中漂浮。我應該做什麼或遵循步驟。

請引導我與您的寶貴意見。

+1

請出示's1'和's2'的值。在該線上放置一個斷點。 – Simon

+0

@Simon:讓s1 = 12和s2 = 20的值。 –

+0

這個代碼必須工作,做西蒙解決方案 –

回答

1

更好地利用

 String value = "25"; 
     String b = "1"; 
     String c = value.concat(".").concat(b); 
     float f = Float.parseFloat(c); 
     Log.d("message :", "" + f); 

驗證

EditText ed1 = (EditText) findViewById(R.id.ed1); 
String s1 = ed1.getText().toString(); 
if(s1.length() <= 0) 
    Toast.makeText(getBaseContext(), "No Value", 1000).show(); 
else 
    // your task 
+0

我嘗試了你的建議,但得到同樣的錯誤。而且我想將浮動的「12.12」字符串轉換爲「12」。 –

+0

@ManojFegde:看看我編輯的答案 –

+0

嘗試編輯你的答覆.. –

1

試試這個:

float f = Float.parseFloat(ed1.getText().toString()+"."+ed2.getText().toString()); 

或者這樣:

float f = Float.valueOf(ed1.getText().toString()+"."+ed2.getText().toString()); 
+0

謝謝。它正在工作。 –

+0

請接受答案,如果它的工作......很高興幫助你歡呼。 :) – SMR