2012-11-02 22 views
8

मैं जावा में एक ग्राफिकल कैलकुलेटर प्रोग्राम बना रहा हूं और एक तरीका है जो उपयोगकर्ता इनपुट के आधार पर एक ऑपरेशन करता है, और JTextField में प्रदर्शित होने के लिए एक डबल देता है। हालांकि, मैं परिणाम को ".0" के बिना पूरे नंबर के रूप में प्रदर्शित करना चाहता हूं, जहां दशमलव बिंदु के बाद कोई महत्वपूर्ण अंक नहीं है, लेकिन फिर भी आवश्यक होने पर दशमलव बिंदु प्रदर्शित करें। ऐसा करने का सबसे प्रभावी तरीका क्या है?यदि डबल नंबर पूरी संख्या है तो दशकों को प्रदर्शित नहीं किया जा रहा है?

+1

शायद एक स्ट्रिंग में बदल जाएंगे और यह वहाँ में हेरफेर एक सशर्त बनाकर अगर अनुगामी दो अक्षर 'हैं .0'? – kush

+0

पिछला वर्णों की जांच करने के लिए मैं सशर्त कैसे लिखूं? – Zero

+1

[DecimalFormat] (http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html) का उपयोग करने वाले प्रश्न के लिए एक बेहतर प्रतिक्रिया है। कृपया नीचे Reimeus का जवाब देखें। – kush

उत्तर

8

आप अनुगामी वर्ण, उदा .: दबाने के लिए DecimalFormat उपयोग कर सकते हैं

DecimalFormat format = new DecimalFormat("#.##"); 
double doubleFromTextField = Double.parseDouble(myField.getText()); 
System.out.println(format.format(doubleFromTextField)); 
+0

जो सभी मामलों में आउटपुट को स्वरूपित करने में मदद करता है, लेकिन पिछला दशमलव ".0" है, लेकिन मैं केवल पिछली दशमलव को खत्म करना चाहता हूं। अगर डबल एक पूर्ण संख्या है तो आउटपुट को प्रारूपित करने के लिए मैं सशर्त कैसे लिखूं? आपकी सहायता के लिए धन्यवाद. – Zero

+2

यह उदाहरण प्रभावी रूप से करता है जो आप पूछते हैं, दशमलव बिंदु के बाद कोई भी महत्वपूर्ण (गैर-शून्य) अंक प्रदर्शित किया जाएगा, इसलिए अतिरिक्त जांच की आवश्यकता नहीं है। – Reimeus

+1

मैं बहुत मूर्ख हूं, मैंने नहीं देखा कि यह सही उत्तर प्रिंट कर रहा था जिसे मैं कंसोल में जेटीक्स्टफिल्ड के बजाय चाहता था। धन्यवाद Reimeus! – Zero