2012-08-14 18 views
8

में 3 के समूहों द्वारा रिक्त स्थान के साथ अंकों को विभाजित करें क्या जावा में एक डबल नंबर विभाजित करने का कोई तरीका है ताकि 3 अंकों के सभी समूहों को अंतरिक्ष के साथ विभाजित किया जा सके और अल्पविराम के बाद केवल 2 अंक दिखाई दे? यह उन्हें एक अल्पविराम से अलग करने के लिए आसान है:जावा

DecimalFormat df = new DecimalFormat("###,###.00"); 
df.format(number); 

ताकि 235235.234234,234.23

में बदल जाता है, तो मैं क्या जरूरत है 234 234.23

है मैं ऐसा कैसे कर सकते हैं?

उत्तर

17

मेरा मानना ​​है कि आपकी प्रारूप स्ट्रिंग में कॉमा वास्तव में एक कॉमा नहीं है - यह केवल DecimalFormatSymbols में समूह का प्रतीक है जिसका आप उपयोग कर रहे हैं।

इस प्रयास करें:

// TODO: Consider specifying a locale 
DecimalFormatSymbols symbols = new DecimalFormatSymbols(); 
symbols.setGroupingSeparator(' '); 
DecimalFormat df = new DecimalFormat("###,###.00", symbols); 

या अंतिम पंक्ति के लिए एक विकल्प के रूप:

DecimalFormat df = new DecimalFormat(); 
df.setDecimalFormatSymbols(symbols); 
df.setGroupingSize(3); 
df.setMaximumFractionDigits(2); 
+0

बहुत बहुत शुक्रिया, जॉन स्कीट =) – Sergey

+2

@Sergey वास्तव में इस प्रश्न/उत्तर के साथ संबंधित नहीं है, लेकिन अलग-अलग समूहों के लिए '_' का उपयोग करके, जावा 7 और बाद में संख्यात्मक अक्षरों की पठनीयता में सुधार करने के लिए एक लिखित ज्ञात चाल है। उदाहरण: 'सार्वजनिक अंतिम स्थैतिक लंबा SUNDIAMETER = 1_390_000_000L; ' –