जवाबों:
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(35634646));
Output: 35,634,646
,, हालांकि .इसके बजाय ग्रुपिंग के लिए उपयोग करने वाले क्षेत्र भी हैं । एक शब्द में, किसी लोकेल को हार्ड-कोडिंग करना एक बुरा अभ्यास माना जाता है।
Locale.getCurrent()से करने के लिए समाधान है
आप सबसे जल्दी पूछते हैं, लेकिन शायद आपका मतलब "सबसे अच्छा" या "सही" या "ठेठ" है?
आप कॉमा से हजारों को इंगित करने के लिए भी कहते हैं, लेकिन शायद आपका मतलब "अपने उपयोगकर्ता के स्थानीय रिवाज के अनुसार सामान्य मानव पठनीय रूप में है"?
आप इसे इस प्रकार करें:
int i = 35634646;
String s = NumberFormat.getIntegerInstance().format(i);
अमेरिकियों को "35,634,646" मिलेंगे
जर्मनों को "35.634.646" मिलेगा
स्विस जर्मन को मिलेगा "35'634'646"
int bigNumber = 1234567;
String formattedNumber = String.format("%,d", bigNumber);
पूर्णांकों:
int value = 100000;
String.format("%,d", value); // outputs 100,000
डबल्स:
double value = 21403.3144d;
String.format("%,.2f", value); // outputs 21,403.31
String.format बहुत शक्तिशाली है।
- प्रति व्यक्ति प्रतिपुष्टि प्रतिक्रिया।
String.format। यह return new Formatter(l) ...आदि के साथ शुरू होता है इसलिए कचरा कलेक्टर तर्क उतना मजबूत नहीं है जितना लगता है।
int value = 35634646;
DecimalFormat myFormatter = new DecimalFormat("#,###");
String output = myFormatter.format(value);
System.out.println(output);
आउटपुट: 35,634,646
#,###, यदि आप यूरोपीय शैली प्रारूपण चाहते हैं तो आप उपयोग कर सकते हैं #,##,###।
,।
अन्य उत्तर सही हैं, हालांकि उपयोग करने से पहले अपने स्थान की दोबारा जांच करें "%,d":
Locale.setDefault(Locale.US);
int bigNumber = 35634646;
String formattedNumber = String.format("%,d", bigNumber);
System.out.println(formattedNumber);
Locale.setDefault(new Locale("pl", "PL"));
formattedNumber = String.format("%,d", bigNumber);
System.out.println(formattedNumber);
परिणाम:
35,634,646
35 634 646
यदि JSP में समान किया जाना है, तो उपयोग करें:
<fmt:formatNumber pattern="#,##0" value="${yourlist.yourintvalue}" var="formattedVariable" />
<c:out value="${formattedVariable}"></c:out>
कई मूल्यों के उपयोग के लिए संभोग:
<c:forEach items="${yourlist}" var="yourlist">
<fmt:formatNumber pattern="#,##0" value="${yourlist.yourintvalue}" var="formattedVariable" />
<c:out value="${formattedVariable}"></c:out>
</c:forEach>
यहाँ आप में से उन लोगों के लिए एक समाधान है जो न तो "नंबरफॉर्म" का उपयोग कर सकते हैं और न ही "स्ट्रिंगिंगफॉर्म" का उपयोग कर सकते हैं (एक फ्रेम के अंदर जावा के सीमित संस्करण का उपयोग करके)। आशा है कि यह उपयोगी है।
number= 123456789;
thousandsSeparator=",";
myNumberString=number.toString();
numberLength=myNumberString.length;
howManySeparators=Math.floor((numberLength-1)/3)
formattedString=myNumberString.substring(0,numberLength-(howManySeparators*3))
while (howManySeparators>0) {
formattedString=formattedString+thousandsSeparator+myNumberString.substring(numberLength-(howManySeparators*3),numberLength-((howManySeparators-1)*3));
howManySeparators=howManySeparators-1; }
formattedString
एक्सटेंशन का उपयोग करें
import java.text.NumberFormat
val Int.commaString: String
get() = NumberFormat.getInstance().format(this)
val String.commaString: String
get() = NumberFormat.getNumberInstance().format(this.toDouble())
val Long.commaString: String
get() = NumberFormat.getInstance().format(this)
val Double.commaString: String
get() = NumberFormat.getInstance().format(this)
परिणाम
1234.commaString => 1,234
"1234.456".commaString => 1,234.456
1234567890123456789.commaString => 1,234,567,890,123,456,789
1234.456.commaString => 1,234.456
आप का उपयोग नहीं कर सकते
System.out.printf("%n%,d",int name);
अल्पविराम को अल्पविराम में printfजोड़ना चाहिए%d अंतर।
इसके बारे में सकारात्मक नहीं है, लेकिन मेरे लिए काम करता है।
import java.text.NumberFormat;।