मुझे कुछ समस्याओं का प्रारूपण करने में कठिनाई हो रही है। यदि मेरे पास एक डबल मान है, उदाहरण के लिए 4.0, तो मैं दशमलव को कैसे प्रारूपित करूं ताकि यह 4.00 के बजाय हो?
मुझे कुछ समस्याओं का प्रारूपण करने में कठिनाई हो रही है। यदि मेरे पास एक डबल मान है, उदाहरण के लिए 4.0, तो मैं दशमलव को कैसे प्रारूपित करूं ताकि यह 4.00 के बजाय हो?
जवाबों:
इसका एक तरीका नंबरफार्मेट का उपयोग करना होगा ।
NumberFormat formatter = new DecimalFormat("#0.00");
System.out.println(formatter.format(4.0));
आउटपुट:
4.00
जावा 8 के साथ, आप formatविधि का उपयोग कर सकते हैं ..: -
System.out.format("%.2f", 4.0); // OR
System.out.printf("%.2f", 4.0);
ffloatingबिंदु मूल्य के लिए प्रयोग किया जाता है।2 दशमलव के बाद, दशमलव स्थानों की संख्या के बाद .अधिकांश जावा संस्करणों के लिए, आप उपयोग कर सकते हैं DecimalFormat: -
DecimalFormat formatter = new DecimalFormat("#0.00");
double d = 4.0;
System.out.println(formatter.format(d));
String.format का उपयोग करें :
String.format("%.2f", 4.52135);
डॉक्स के अनुसार:
हमेशा इस्तेमाल किया जाने वाला लोकेल वही होता है, जो उसके द्वारा लौटाया जाता है
Locale.getDefault()।
String.format का उपयोग करके, आप यह कर सकते हैं:
double price = 52000;
String.format("$%,.2f", price);
कॉमा को नोटिस करें जो इसे @ विंसेंट के उत्तर से अलग बनाता है
आउटपुट:
$52,000.00
स्वरूपण के लिए एक अच्छा संसाधन विषय पर आधिकारिक जावा पेज है
आप हमेशा स्थैतिक विधि का उपयोग कर सकते हैं printf from System.out- फिर आप संबंधित फॉर्मेटर को लागू करेंगे; यह हीप स्पेस बचाता है जिसमें अन्य उदाहरणों के लिए आपको करना आवश्यक है।
उदाहरण के लिए:
System.out.format("%.4f %n", 4.0);
System.out.printf("%.2f %n", 4.0);
बचत स्थान को बचाता है जो एक बहुत बड़ा बोनस है, फिर भी मैं यह मानता हूं कि यह उदाहरण किसी भी अन्य उत्तर की तुलना में बहुत अधिक प्रबंधनीय है, खासकर जब से अधिकांश प्रोग्रामर सी से प्रिंटफ फ़ंक्शन को जानते हैं (जावा हालांकि फ़ंक्शन / विधि को थोड़ा बदलता है)।
outहै PrintStream।
double d = 4.0;
DecimalFormat nf = DecimalFormat.getInstance(Locale.ENGLISH);
System.out.println(nf.format("#.##"));
new DecimalFormat("#0.00").format(4.0d);
एक वैकल्पिक विधि कक्षा setMinimumFractionDigitsसे विधि का उपयोग करती है NumberFormat।
यहां आप मूल रूप से निर्दिष्ट करते हैं कि दशमलव बिंदु के बाद आप कितने नंबर दिखाना चाहते हैं।
तो , आपकी निर्दिष्ट राशि 2 थी मानकर एक इनपुट का 4.0उत्पादन होगा 4.00।
लेकिन, यदि आपके Doubleइनपुट में निर्दिष्ट राशि से अधिक है, तो यह निर्दिष्ट न्यूनतम राशि लेगा, फिर ऊपर और नीचे एक और अंक जोड़ दें
उदाहरण के लिए, 4.154654542 निर्दिष्ट न्यूनतम राशि के साथ उत्पादन होगा4.155
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(2);
Double myVal = 4.15465454;
System.out.println(nf.format(myVal));
ऐसा करने के कई तरीके हैं। उन लोगों को दिया जाता है:
मान लीजिए कि आपका मूल नंबर bellow दिया गया है:
double number = 2354548.235;
नंबरफॉर्म का उपयोग करना:
NumberFormat formatter = new DecimalFormat("#0.00");
System.out.println(formatter.format(number));
String.format का उपयोग करना:
System.out.println(String.format("%,.2f", number));
DecimalFormat और पैटर्न का उपयोग करना:
NumberFormat nf = DecimalFormat.getInstance(Locale.ENGLISH);
DecimalFormat decimalFormatter = (DecimalFormat) nf;
decimalFormatter.applyPattern("#,###,###.##");
String fString = decimalFormatter.format(number);
System.out.println(fString);
DecimalFormat और पैटर्न का उपयोग करना
DecimalFormat decimalFormat = new DecimalFormat("############.##");
BigDecimal formattedOutput = new BigDecimal(decimalFormat.format(number));
System.out.println(formattedOutput);
सभी मामलों में आउटपुट होगा: 2354548.23
नोट :
गोलाई के दौरान आप 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;
आप नीचे दिए गए तरीकों में से किसी एक का उपयोग कर सकते हैं
यदि आप उपयोग कर रहे हैं java.text.DecimalFormat
DecimalFormat decimalFormat = NumberFormat.getCurrencyInstance();
decimalFormat.setMinimumFractionDigits(2);
System.out.println(decimalFormat.format(4.0));
या
DecimalFormat decimalFormat = new DecimalFormat("#0.00");
System.out.println(decimalFormat.format(4.0)); यदि आप इसे सरल स्ट्रिंग प्रारूप में बदलना चाहते हैं
System.out.println(String.format("%.2f", 4.0)); उपरोक्त सभी कोड 4.00 प्रिंट होंगे
100% काम करता है।
import java.text.DecimalFormat;
public class Formatting {
public static void main(String[] args) {
double value = 22.2323242434342;
// or value = Math.round(value*100) / 100.0;
System.out.println("this is before formatting: "+value);
DecimalFormat df = new DecimalFormat("####0.00");
System.out.println("Value: " + df.format(value));
}
}
पहला आयात NumberFormat। फिर इसे जोड़ें:
NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
यह आपको दो दशमलव स्थान देगा और यदि यह मुद्रा के साथ काम कर रहा है तो एक डॉलर चिह्न लगाएगा।
import java.text.NumberFormat;
public class Payroll
{
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
int hoursWorked = 80;
double hourlyPay = 15.52;
double grossPay = hoursWorked * hourlyPay;
NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
System.out.println("Your gross pay is " + currencyFormatter.format(grossPay));
}
}
आप इसे इस प्रकार कर सकते हैं:
double d = 4.0;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d));
##इसके बजाय का उपयोग कर रहा है00
मुझे पता है कि यह एक पुराना विषय है, लेकिन अगर आप वास्तव में अल्पविराम के बजाय अवधि को पसंद करते हैं, तो बस अपना परिणाम X, 00 के रूप में एक स्ट्रिंग में सहेजें और फिर बस इसे अवधि के लिए बदल दें ताकि आपको X.00 मिल जाए
सबसे आसान तरीका है बस प्रतिस्थापित का उपयोग करें।
String var = "X,00";
String newVar = var.replace(",",".");
आउटपुट X.00 आप चाहते थे। इसे आसान बनाने के लिए आप इसे एक ही बार में कर सकते हैं और इसे एक दोहरे चर में सहेज सकते हैं:
Double var = Double.parseDouble(("X,00").replace(",",".");
मुझे पता है कि यह उत्तर अभी उपयोगी नहीं है, लेकिन हो सकता है कि कोई व्यक्ति जो इस मंच की जाँच करता है, वह इस तरह के त्वरित समाधान की तलाश करेगा।
String.format()याjava.text.Format।