2011-04-07 13 views
7

क्या जावा में दशमलव, फ्लोट, डबल इत्यादि को प्रारूपित करने के लिए जावा का कोई आसान तरीका है केवल संख्या के दशमलव भाग को मुद्रित करने के लिए? मुझे पूर्णांक भाग की आवश्यकता नहीं है, यहां तक ​​कि विशेष रूप से यदि यह शून्य है! मैं वर्तमान में स्ट्रिंग.इंडेक्सऑफ ("।") विधि का उपयोग कर रहा हूं जो स्ट्रिंग.substring() विधि के साथ दशमलव के दाईं ओर संख्या के हिस्से को चुनने के लिए जोड़ा गया है। क्या ऐसा करने का कोई क्लीनर तरीका है? DecimalFormat कक्षा या printf विधि में कुछ भी नहीं मिला। दशमलव स्थान से पहले हमेशा शून्य शून्य लौटाते हैं।जावा - दशमलव भाग को मुद्रित करने के लिए प्रारूप संख्या केवल

+0

आप दशमलव बिंदु प्रदर्शित करने के लिए करना चाहते हैं ? –

+0

हां, मैं दशमलव बिंदु – Fred

उत्तर

7

आप डबल से लंबे समय तक कास्टिंग करके मूल्य के पूर्णांक भाग को हटा सकते हैं।

double val = 3.5; 
long intPartVal= (long) val; 
double fracPartVal = val - intPartVal; 
System.out.println(fracPartVal); 

और आप यह कर सकते हैं आप आगे शून्य से छुटकारा पाने के लिए करना चाहते हैं: द्वारा

System.out.println(("" + fracPartVal).substring(1)); 
+0

दिखाना चाहता हूं, मुझे विश्वास है कि अभी भी अग्रणी शून्य प्रिंट करेगा। मुझे इसे मुद्रित करने की आवश्यकता है: .5, 0.5 नहीं। – Fred

+0

+1 यह मेरे लिए नया है। यहां एक और [उदाहरण] है (http://www.java2s.com/Code/Java/Language-Basics/Obtainingtheintegerandfractionalparts.htm)। – mre

+2

अग्रणी शून्य को हटाने के तरीके में जोड़ा गया, लेकिन मेरा मानना ​​है कि यह पहले से ही कम से कम क्या कर रहा था। हालांकि, मुझे लगता है कि संख्या के पूर्णांक भाग को हटाने के लिए घटाना एक और अधिक आकर्षक समाधान होना चाहिए। – jberg

5

फूट डालो फिर आप केवल भिन्नात्मक मूल्य के साथ छोड़ा जा सकता मूल मूल्य से घटा सकते 1 और शेष भाग प्राप्त करने के लिए शेष प्राप्त करें ("%" का उपयोग करके)। ("#" प्रतीक का उपयोग प्रमुख 0s को दबाने के लिए) प्रारूप परिणाम के लिए DecimalFormat का उपयोग करें:

double d1 = 67.22; 
double d2 = d1%1; 
DecimalFormat df = new DecimalFormat("#.00"); 
System.out.println(df.format(d2)); 

इस प्रिंट .22

+0

हां, उसने ऐसा किया। – Fred

0

यह प्रिंट होगा 0,3

double x = 23.8; 
int y =(int)x; 
float z= (float) (x % y); 
System.out.println(z); 
+0

यह काम करेगा लेकिन यह अनावश्यक रूप से जटिल है। बस शेष मॉड्यूलो 1 ले जाएगा, या पूरे पूर्णांक भाग घटाना होगा। – poolie