जवाबों:
String.format("%1$,.2f", myDouble);
String.format स्वचालित रूप से डिफ़ॉल्ट लोकेल का उपयोग करता है।
%1, %2और इसी तरह अपने इनपुट तर्कों के सूचकांक के आधार पर आउटपुट को फिर से ऑर्डर करने के लिए इस्तेमाल किया जा सकता है। देखें इस । आप सूचकांक को छोड़ सकते हैं और डिफ़ॉल्ट आदेश फॉर्मेटर द्वारा ग्रहण किया जाएगा।
String.format("%4.3f" , x) ;
इसका मतलब है कि हमें ans में कुल 4 अंक चाहिए, जिनमें से 3 दशमलव के बाद होने चाहिए। और f डबल का फॉर्मेट स्पेसिफ़ायर है। 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, 123,000)लाइन-अप सकारात्मक और नकारात्मक मान:
1.234.567,12
-1.234.567,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);
स्ट्रिंग फॉर्मेटर का उपयोग करना
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);