উত্তর:
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
। এটি return new Formatter(l) ...
ইত্যাদি দিয়ে শুরু হয় তাই আবর্জনা সংগ্রহকারী যুক্তি ততটা দৃ strong় নয় বলে মনে হয়।
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
%d
কমা দিয়ে ফর্ম্যাট নির্দিষ্টকরণ ব্যবহার করুন :%,d
এটি এখন পর্যন্ত সবচেয়ে সহজ উপায়।
যদি জেএসপিতেও এটি করতে হয় তবে ব্যবহার করুন:
<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;
।