2011-11-09 14 views
68

शायद यह एक मूर्ख सवाल है, लेकिन अगर मैं कोई विधि नहीं बना रहा हूं तो मैं इसे हल करने का अनुमान नहीं लगा सकता। हो सकता है कि ऐसा करने के लिए "प्राकृतिक तरीका" हो, उदाहरण के लिए सी में। यहाँ समस्या है:एंड्रॉइड में दो दशमलव के साथ डबल प्रिंट कैसे करें?

मैं एक वर है:

double a; 

और मैं यह केवल 2 या 3 दशमलव के साथ दिखाना चाहते हैं। जब मैं यह दिखाने के लिए प्रयास करें:

एक का मूल्य::

Text.setText("Value of a: " + String.valueOf(a)); 

यह की तरह कुछ देता है 5,234966145

और मैं एक का सिर्फ

मूल्य चाहेगा : 5.23

किसी के वास्तविक मूल्य को बदलने के बिना यह अनुमानित संख्या दिखाता है लेकिन वास्तविक संख्या के साथ काम करता है।

DecimalFormat form = new DecimalFormat("0.00"); 
etToll.setText(form.format(tvTotalAmount)); 

नोट:: डाटा दशमलव प्रारूप में होना चाहिए (tvTotalAmount)

+0

doubleNumber.toString()। सबस्ट्रिंग (0 use- प्रदर्शित करने के लिए, 3) – Madi

उत्तर

155
Text.setText(String.format("Value of a: %.2f", a)); 
8

उपयोग इस एक का उपयोग कर सकते और

DecimalFormat form = new DecimalFormat("0.00"); 
     textView2.setText(form.format(result)); 

... यूरोप के लिए लोकेल में "संख्याफॉर्मेट अपवाद" त्रुटि का कारण है क्योंकि यह बिंदु दशमलव के बजाय अल्पविराम के रूप में परिणाम सेट करता है - त्रुटि तब होती है जब टेक्स्ट व्यू को संपादित टेक्स्ट में संख्या में जोड़ा जाता है। दोनों समाधान स्थानीय अमेरिका और ब्रिटेन में उत्कृष्ट काम कर रहे हैं।

19

इससे पहले कि आप DecimalFormat आप निम्नलिखित आयात का उपयोग करने की जरूरत है या अपने कोड काम नहीं करेगा का उपयोग करें:

import java.text.DecimalFormat; 

प्रारूपण के लिए कोड है:

DecimalFormat precision = new DecimalFormat("0.00"); 
// dblVariable is a number variable and not a String in this case 
txtTextField.setText(precision.format(dblVariable)); 
+0

आपका कोड गोल मान दिखाता है। उदाहरण के लिए, यह 2 दिखाता है।82 precision.format (2.81666666) पर कॉल करके ... – anivaler

12

वहाँ दो दशमलव स्थानों तक अंकों प्रदर्शित करने के लिए दो संभावनाएं हैं - 1) सबसे पहले, आप केवल दशमलव अंकों को प्रदर्शित करना चाहते हैं यदि यह वहां है। उदाहरण के लिए - i) 12.10, 12.1 रूप में प्रदर्शित करना ii) 12.00 12. तब use-

DecimalFormat formater = new DecimalFormat("#.##"); 

2) दूसरे, आप उदाहरण के लिए दशमलव वर्तमान पर ध्यान दिए बिना दशमलव अंक प्रदर्शित करना चाहते हैं के रूप में प्रदर्शित करने के लिए मैं) 12.10 को 12.10 के रूप में प्रदर्शित किया जाना है। ii) 12 के रूप में 12.00.Then

DecimalFormat formater = new DecimalFormat("#.00"); 
+1

यह "0" के रूप में "0" प्रारूपित करेगा। इसके बजाय "0" को "0.00" के रूप में प्रदर्शित करने के लिए 'नया DecimalFormat (" 0.00 ") 'का उपयोग करें – PrashanD

संबंधित मुद्दे