2012-05-24 14 views
18

संभव डुप्लिकेट में नाव मूल्य में स्ट्रिंग परिवर्तित करने के लिए:
String from EditText to floatकैसे एंड्रॉयड

आवेदन में मैं इसी को 233243664376347845.89 की तरह संबंधित मान को संपादित करें बॉक्स में दर्ज स्ट्रिंग परिवर्तित करना चाहते हैं फ्लोट वैल्यू लेकिन यह कुछ संख्या के बाद आईई 10 की तरह लौटाता है उदाहरण के लिए 23324366IE10 कृपया मेरी मदद करें। मेरे कोड है -

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

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

संपादित पाठ की लंबाई अधिक से अधिक फिर 20 अंकों का होता है, यह भी मैं चाहता हूँ करने के लिए शून्य से दो पाठ संपादित नाव मूल्यों ...

+0

एक 'डबल' मान आज़माएं। – Stephan

+0

फ़्लोट.वल्यूओएफ (स्ट्रिंग) का उपयोग करें: http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Float.html#valueOf%28java.lang.String%29 – Blackbelt

+1

'डबल 'मान (यह 'फ्लोट' नहीं है) को ठीक से पार्स किया गया है। समस्या यह है कि यह * प्रदर्शित * सही नहीं है। कोड 'नंबर' प्रिंट करने वाला कोड कहां है? – Jon

उत्तर

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

असफलताओं के मामले में आप नंबरफॉर्मेट अपवाद पकड़ लेंगे। –

14

यह आपकी समस्या का समाधान होगा:

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

इसे आजमाएं।

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

आप अगर फ्लोट आवरण वर्ग एक नाव के लिए एक स्ट्रिंग में कनवर्ट करने valueOf() विधि का उपयोग करें। इस उदाहरण में मुझे getText() के साथ उस संपादन टेक्स्ट का संपादन योग्य ऑब्जेक्ट मिलता है जिस पर मैं इसे स्ट्रिंग प्राप्त करने के लिए toString() विधि को कॉल करता हूं।

+0

यह केवल 6 अंक काम करता है, हम 6 अंकों से अधिक दर्ज करेंगे इसका मतलब है कि यह 6857841E10 दिखाता है – user1235251