2015-04-21 5 views
5

मान लें कि मैं 100000000 नंबर मुद्रित करना चाहता हूं। पहली नजर में यह बताना मुश्किल है कि यह संख्या कितनी लाखों का प्रतिनिधित्व कर रही है। क्या यह 10 मिलियन या 100 मिलियन है? मैं जावा में बड़ी संख्या कैसे बना सकता हूं और अधिक पठनीय दिखता हूं? उदाहरण के लिए ऐसा कुछ अच्छा होगा: 100 000 000। आप तुरंत बता सकते हैं कि संख्या 100 मिलियन है।int के अंदर खाली जगह कैसे जोड़ें?

+0

आप बड़ी संख्या के लिए अंडरस्कोर का उपयोग कर सकते हैं। – Masudul

+0

@ मसूद ओपी संख्या प्रिंट करते समय सफेद रिक्त स्थान जोड़ना चाहता है, स्रोत कोड – Turing85

+5

https://docs.oracle.com/javase/tutorial/java/data/numberformat.html – bobwah

उत्तर

9

तुम भी DecimalFormat कोशिश कर सकते हैं;

DecimalFormat formatter = new DecimalFormat("#,###"); 
System.out.println(formatter.format(100000)); 

परिणाम:

1000>>1,000 
10000>>10,000 
100000>>100,000 
1000000>>1,000,000 
0

आप शायद इसके लिए एक स्ट्रिंग का उपयोग करना चाहेंगे। यदि आपको कुछ गणना करने की आवश्यकता है तो इसे केवल एक int के रूप में रखें जब तक इसे मुद्रित करने की आवश्यकता न हो। फिर जब इसे मुद्रित करने की आवश्यकता होती है तो इसे एक स्ट्रिंग में परिवर्तित करें, स्ट्रिंग को संसाधित करें ताकि इसे जितना चाहें उतना पठनीय और प्रिंट कर सकें।

3

आप इस तरह की कोशिश कर सकते हैं:

String.format("%.2fM", yourNumber/ 1000000.0); 

यह

1,000,000 => 1.00M 
1,234,567 => 1.23M 

संपादित प्रारूप में नंबर प्रदर्शित करेगा: -

मैं अपने एक देर से संपादित जानते हैं, लेकिन हाँ एक और तरीका है:

private static String[] suff = new String[]{"","k", "m", "b", "t"}; 
private static int MAX_LENGTH = 4; 

private static String numberFormat(double d) { 
    String str = new DecimalFormat("##0E0").format(d); 
    str = str.replaceAll("E[0-9]", suff[Character.getNumericValue(str.charAt(str.length() - 1))/3]); 
    while(str.length() > MAX_LENGTH || str.matches("[0-9]+\\.[a-z]")){ 
     str = str.substring(0, str.length()-2) + str.substring(str.length() - 1); 
    } 
    return str; 
} 

कॉल इस समारोह और आप उत्पादन के रूप में इस मिल जाएगा:

201700 = 202k 
3000000 = 3m 
8800000 = 8.8m 
1

आप दशमलव प्रारूप का उपयोग कर सकते स्ट्रिंग स्वरूपित करने के लिए

DecimalFormat decimalFormat = new DecimalFormat("###,###,###"); 
    System.out.println(decimalFormat.format(100000000)); 

यह अन्य इनपुट के लिए 100000000

प्रिंट होगा - कहते हैं कि 1000 यह 1,000 प्रिंट होगा

2

DecimalFormat कक्षा का उपयोग करें, उपयोग के लिए लिंक देखें।

आप खोज रहा जो लिखा है उसे आप मूल रूप से की जरूरत है

DecimalFormat myFormatter = new DecimalFormat("### ### ###"); 
String output = myFormatter.format(value); 
System.out.println(output); 
0
तरीके के बारे में दृष्टिकोण नीचे

बचाने के लिए, लेकिन जावा 7 और बाद के संस्करणों में it's supported:

पूर्णांक twoMillion = 2_000_000;

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