উত্তর:
আপনি DecimalFormat
ক্লাসটি দেখতে চাইতে পারেন ; এটি বিভিন্ন লোকেল সমর্থন করে (যেমন: কিছু দেশে এর 1.000.500.000,57
পরিবর্তে ফর্ম্যাট করা হবে)।
আপনার সেই স্ট্রিংটিকে একটি সংখ্যায় রূপান্তর করতে হবে, এটি দিয়ে এটি করা যেতে পারে:
double amount = Double.parseDouble(number);
কোড নমুনা:
String number = "1000500000.574";
double amount = Double.parseDouble(number);
DecimalFormat formatter = new DecimalFormat("#,###.00");
System.out.println(formatter.format(amount));
এটি স্ট্রিং.ফর্ম্যাট () ব্যবহার করেও সম্পন্ন করা যায়, আপনি যদি এক স্ট্রিংয়ে একাধিক সংখ্যার ফর্ম্যাট করে থাকেন তবে এটি সহজ এবং / বা আরও নমনীয় হতে পারে।
String number = "1000500000.574";
Double numParsed = Double.parseDouble(number);
System.out.println(String.format("The input number is: %,.2f", numParsed));
// Or
String numString = String.format("%,.2f", numParsed);
"%। 2f" - "," বিন্যাসের স্ট্রিংয়ের অর্থ কমা সহ পৃথক অঙ্কের গোষ্ঠী এবং ".2" অর্থ দশমিকের পরে দুটি স্থানে গোল হয়।
অন্যান্য ফর্ম্যাটিং বিকল্পগুলির জন্য রেফারেন্সের জন্য, https://docs.oracle.com/javase/tutorial/java/data/number فارt.html দেখুন
একবার আপনি আপনার স্ট্রিংকে একটি সংখ্যায় রূপান্তরিত করে ব্যবহার করতে পারেন
// format the number for the default locale
NumberFormat.getInstance().format(num)
অথবা
// format the number for a particular locale
NumberFormat.getInstance(locale).format(num)
new DecimalFormat("0.##", DecimalFormatSymbols.getInstance(locale))
এটি গুগলের এক নম্বর ফলাফলের জন্য দেওয়া format number commas java
, এখানে এমন একটি উত্তর দেওয়া হয়েছে যা পুরো সংখ্যার সাথে কাজ করে এমন দশমিকের বিষয়ে চিন্তা করে না এমন লোকদের জন্য কাজ করে।
String.format("%,d", 2000000)
আউটপুট:
2,000,000
আমি আমার নিজস্ব ফর্ম্যাটিং ইউটিলিটি তৈরি করেছি। যা আপনাকে অনেকগুলি বৈশিষ্ট্য দেওয়ার সাথে সাথে ফর্ম্যাটটি প্রক্রিয়া করতে অত্যন্ত দ্রুত :)
এটি সমর্থন করে:
কোডটি এখানে পাওয়া যাবে । আপনি এটিকে এভাবে বলেছেন:
public static void main(String[])
{
int settings = ValueFormat.COMMAS | ValueFormat.PRECISION(2) | ValueFormat.MILLIONS;
String formatted = ValueFormat.format(1234567, settings);
}
আমার এটিও উল্লেখ করা উচিত যে এটি দশমিক সমর্থনটি পরিচালনা করে না, তবে পূর্ণসংখ্যার মানগুলির জন্য খুব দরকারী। উপরের উদাহরণটি আউটপুট হিসাবে "1.23M" প্রদর্শন করবে। আমি সম্ভবত দশমিক সমর্থন যোগ করতে পারতাম, তবে এর পরে খুব বেশি ব্যবহারের মুখোমুখি হতে পারি নি আমি তখন থেকে এটিকে আরও একটি বিগইন্টিজার ধরণের শ্রেণিতে মিশ্রিত করতে পারি যা গণিতের গণনার জন্য সংকুচিত চর [] অ্যারে পরিচালনা করে।
K
M
public void convert(int s)
{
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(s));
}
public static void main(String args[])
{
LocalEx n=new LocalEx();
n.convert(10000);
}
আপনি নীচের সমাধানটিও ব্যবহার করতে পারেন -
public static String getRoundOffValue(double value){
DecimalFormat df = new DecimalFormat("##,##,##,##,##,##,##0.00");
return df.format(value);
}
আপনি নিম্নলিখিত কোডটি ব্যবহার করে এক লাইনে পুরো রূপান্তরটি করতে পারেন:
String number = "1000500000.574";
String convertedString = new DecimalFormat("#,###.##").format(Double.parseDouble(number));
ডেসিমালফর্ম্যাট কনস্ট্রাক্টরের শেষ দুটি # চিহ্নও 0 টি হতে পারে। যেভাবেই কাজ করে।
প্রথম উত্তরটি খুব ভালভাবে কাজ করে তবে জেরো / 0 এর জন্য এটি .00 হিসাবে ফর্ম্যাট করবে
সুতরাং #, # # 0.00 ফর্ম্যাটটি আমার পক্ষে ভাল কাজ করছে। উত্পাদন সিস্টেমে মোতায়েনের আগে সর্বদা 0/100 / 2334.30 এবং নেতিবাচক সংখ্যাগুলির মতো বিভিন্ন নম্বর পরীক্ষা করুন।
সেখানে যাওয়ার সহজ উপায় এখানে:
String number = "10987655.876";
double result = Double.parseDouble(number);
System.out.println(String.format("%,.2f",result));
আউটপুট: 10,987,655.88