উত্তর:
String.format("%1$,.2f", myDouble);
String.format স্বয়ংক্রিয়ভাবে ডিফল্ট লোকেল ব্যবহার করে।
String.format("%4.3f" , x) ;
এর অর্থ হল যে আমাদের উত্তরগুলিতে মোট 4 টি সংখ্যা দরকার, যার মধ্যে 3 টি দশমিকের পরে হওয়া উচিত। এবং এফ হ'ল ফর্ম্যাট স্পেসিফায়ার। x এর অর্থ হল পরিবর্তনশীল যার জন্য আমরা এটি খুঁজতে চাই। আমার জন্য কাজ করেছেন। । ।
String.format("%014.3f" , 58.656565)-> 0000000058,657: মোট 14 টি প্রতীক: 8 টি শূন্য এবং 5 সংখ্যা এবং 1 কমা। তাই এই ক্ষেত্রে সংখ্যা 14 প্রতীক মোট সংখ্যা মানে (অতিরিক্ত বেশী শূন্য নেতৃস্থানীয় দিয়ে প্রতিস্থাপিত পেতে, ছাড়া যেতে পারে তারপর, এটা স্থান সঙ্গে প্রতিস্থাপন হবে) ফলাফলের স্ট্রিং । .3অংশ এখানে সম্পূর্ণরূপে স্বাধীন।
String.format("%014.3f" , 58.656565)-> 58,657। আমি এটি গ্রহণ করি কারণ অগ্রাধিকার .3fঅংশে যায় : এটি প্রথমে 3 দশমিক স্থানের সাথে নম্বরটি মুদ্রণ করে এবং যদি চিহ্নগুলি থাকে তবে এটি শীর্ষস্থানীয় স্থান (বা শূন্য / যা কিছু) মুদ্রণ করে। এই ক্ষেত্রে সংখ্যাটি 2 + 3 + 1 = 6 চিহ্ন এবং আমরা কেবল 4 টি মুদ্রণ করতে চেয়েছিলাম, তাই কোনও অতিরিক্ত স্পেস অবশ্যই নেই।
আপনি যদি এটি ম্যানুয়ালি সেট চিহ্ন সহ ফর্ম্যাট করতে চান তবে এটি ব্যবহার করুন:
DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols();
decimalFormatSymbols.setDecimalSeparator('.');
decimalFormatSymbols.setGroupingSeparator(',');
DecimalFormat decimalFormat = new DecimalFormat("#,##0.00", decimalFormatSymbols);
System.out.println(decimalFormat.format(1237516.2548)); //1,237,516.25
যদিও লোকেল-ভিত্তিক ফর্ম্যাটিং পছন্দ করা হয়।
এই লিঙ্ক থেকে কোড এক্সট্রাক্ট ;
Double amount = new Double(345987.246);
NumberFormat numberFormatter;
String amountOut;
numberFormatter = NumberFormat.getNumberInstance(currentLocale);
amountOut = numberFormatter.format(amount);
System.out.println(amountOut + " " +
currentLocale.toString());
এই উদাহরণ থেকে প্রাপ্ত আউটপুটটি দেখায় যে কীভাবে একই সংখ্যার ফর্ম্যাটটি লোকালের সাথে পরিবর্তিত হয়:
345 987,246 fr_FR
345.987,246 de_DE
345,987.246 en_US
public class MainClass {
public static void main(String args[]) {
System.out.printf("%d %(d %+d %05d\n", 3, -3, 3, 3);
System.out.printf("Default floating-point format: %f\n", 1234567.123);
System.out.printf("Floating-point with commas: %,f\n", 1234567.123);
System.out.printf("Negative floating-point default: %,f\n", -1234567.123);
System.out.printf("Negative floating-point option: %,(f\n", -1234567.123);
System.out.printf("Line-up positive and negative values:\n");
System.out.printf("% ,.2f\n% ,.2f\n", 1234567.123, -1234567.123);
}
}
এবং প্রিন্ট আউট:
3 (3) +3 00003
ডিফল্ট ফ্লোটিং-পয়েন্ট ফর্ম্যাট: 1234567,123000
কমা সহ ভাসমান-পয়েন্ট: 1.234.567,123000
নেতিবাচক ভাসমান-পয়েন্ট ডিফল্ট: -1.234.567,123000
নেতিবাচক ভাসমান-পয়েন্ট বিকল্প: (1.234.567, 123000)লাইন আপ ইতিবাচক এবং নেতিবাচক মান:
1.234.567,12
-1.234.567,12 12
আপনি এটি করতে পারেন এমন অনেকগুলি উপায় রয়েছে। এগুলি বোকা দেওয়া হয়:
মনে করুন আপনার আসল নম্বরটি নমুনা দেওয়া হয়েছে: দ্বিগুণ সংখ্যা = 2354548.235;
ব্যবহার NumberFormatএবং রাউন্ডিং মোড
NumberFormat nf = DecimalFormat.getInstance(Locale.ENGLISH);
DecimalFormat decimalFormatter = (DecimalFormat) nf;
decimalFormatter.applyPattern("#,###,###.##");
decimalFormatter.setRoundingMode(RoundingMode.CEILING);
String fString = decimalFormatter.format(number);
System.out.println(fString);
স্ট্রিং বিন্যাস ব্যবহার করে Using
System.out.println(String.format("%1$,.2f", number));
সমস্ত ক্ষেত্রে আউটপুট হবে: 2354548.24
দ্রষ্টব্য :
রাউন্ডিংয়ের সময় RoundingModeআপনি আপনার ফর্ম্যাটারে যুক্ত করতে পারেন । বেলো দেওয়া কিছু রাউন্ডিং মোড এখানে রয়েছে :
decimalFormat.setRoundingMode(RoundingMode.CEILING);
decimalFormat.setRoundingMode(RoundingMode.FLOOR);
decimalFormat.setRoundingMode(RoundingMode.HALF_DOWN);
decimalFormat.setRoundingMode(RoundingMode.HALF_UP);
decimalFormat.setRoundingMode(RoundingMode.UP);
এখানে আমদানি করা হয় :
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;
ব্যবহার DecimalFormat
NumberFormat nf = DecimalFormat.getInstance(Locale.ENGLISH);
DecimalFormat decimalFormatter = (DecimalFormat) nf;
decimalFormatter.applyPattern("#,###,###.##");
String fString = decimalFormatter.format(myDouble);
System.out.println(fString);
String.format(Locale.GERMAN, "%1$,.2f", myDouble);