मैं वर्तमान में निम्नलिखित कोड का उपयोग में दशमलव विभाजक के रूप में एक डबल मुद्रित करने के लिए मैं एक बिंदु का उपयोग करना चाहता हूँ। क्या इसे करने का कोई आसान तरीका है?बल ("।") बिंदु जावा
उत्तर
String.format
का अधिभार तो आप स्थान निर्दिष्ट कर सकते हैं जो का उपयोग करें:
return String.format(Locale.ROOT, "%.2f", someDouble);
आप केवल एक नंबर स्वरूपण कर रहे हैं - के रूप में आप यहाँ हैं - तो NumberFormat
का उपयोग कर शायद और अधिक उपयुक्त होगा। लेकिन अगर आपको String.format
की शेष स्वरूपण क्षमताओं की आवश्यकता है, तो यह ठीक काम करना चाहिए।
आप नंबरफॉर्मेट और डेसिमलफॉर्मैट का उपयोग कर सकते हैं।
जावा ट्यूटोरियल से इस लिंक पर एक नजर डालें LocaleSpecific Formatting
नामक अनुभाग लोकेल के प्रति संवेदनशील प्रारूपण तुम क्या जरूरत है।
आप एक अतिरिक्त लोकेल java.lang.String.format करने के साथ ही करने के लिए java.io.PrintStream.printf (जैसे System.out.printf()) पारित कर सकते हैं:
import java.util.Locale;
public class PrintfLocales {
public static void main(String args[]) {
System.out.printf("%.2f: Default locale\n", 3.1415926535);
System.out.printf(Locale.GERMANY, "%.2f: Germany locale\n", 3.1415926535);
System.out.printf(Locale.US, "%.2f: US locale\n", 3.1415926535);
}
}
इस में जो परिणाम (मेरे पीसी पर) के बाद:
$ java PrintfLocales
3.14: Default locale
3,14: Germany locale
3.14: US locale
String.format देखें जावा एपीआई में।
आप 'out.printf ((लोकेल) नल, ...) 'या' out.format ((लोकेल) शून्य, ...) 'लोकेल स्वतंत्र प्रतिनिधित्व प्राप्त करने के लिए भी उपयोग कर सकते हैं। (और वहां भी ['लोकेल.रोओटी'] है (http://docs.oracle.com/javase/6/docs/api/java/util/Locale.html#ROOT)) – eckes
एक और अधिक कठोर समाधान मुख्य रूप से अपने लोकेल को मुख्य() में सेट करना है।
तरह:
Locale.setDefault(new Locale("en", "US"));
यह एक _very_ समस्याग्रस्त उत्तर है, क्योंकि इसका वैश्विक प्रभाव है, इस प्रकार कई अन्य (संभवतः अवांछित) परिवर्तन हो सकते हैं। – sleske
रास्ता बहुत देर हो चुकी है, लेकिन अन्य यहाँ उल्लेख किया NumberFormat
का नमूना उपयोग (और इसके उपवर्ग DecimalFormat
)
public static String format(double num) {
DecimalFormatSymbols decimalSymbols = DecimalFormatSymbols.getInstance();
decimalSymbols.setDecimalSeparator('.');
return new DecimalFormat("0.00", decimalSymbols).format(num);
}
- 1. बल
- 2. बल
- 3. बल
- 4. बल उप-वर्गों में अमूर्त जावा वर्ग
- 5. एक बिंदु बिंदु
- 6. जावा: मूल अंकन, एक बिंदु/डॉट/पिक्सेल
- 7. जावा एसओएपी "wsimport" - दस्तावेज/शाब्दिक लपेटा डब्लूएसडीएल से बल लपेटा बल?
- 8. आईफोन बल रोटेशन
- 9. बल slf4j
- 10. बल install.packages()
- 11. श्रेणीबद्ध बल D3.js
- 12. जावा में ओवरराइड होने के तरीके को कैसे बल दें?
- 13. प्रोग्राम बिंदु पर पहुंच बिंदु कैसे बनाएं
- 14. किसी दिए गए बिंदु पर निकटतम बिंदु
- 15. बल कैलियर की घूर्णन दिशा?
- 16. क्रोम एक्सटेंशन बल माउस चाल
- 17. नोड्स रखने के बल बल लेआउट कैसे पता चला है?
- 18. निकटतम बिंदु
- 19. विशिष्ट बिंदु
- 20. माउंट बिंदु
- 21. दशमलव बिंदु
- 22. तीसरा बिंदु
- 23. ... (तीन बिंदु)?
- 24. तोड़ बिंदु
- 25. निकटतम बिंदु
- 26. बुलेटफिसिक: संपर्क बल/आवेग
- 27. Git बल पूरा सिंक
- 28. System.Windows.Forms.WebBrowser: बल X86?
- 29. एचटीएमएल: बल पीडीएफ डाउनलोड
- 30. एक बिक्री बल आईडी
आप सटीक दशमलव के साथ डबल मूल्य का उपयोग कर की जरूरत है, हो सकता है है आपको डबल/डबल के बजाय BigDecimal का उपयोग करना चाहिए। डबल वैरिएबल का उपयोग करते समय आपको जिन मुद्दों का सामना करना पड़ सकता है, उनके लिए यह [लिंक] (http://stackoverflow.com/questions/15625556/java-adding-and-subtracting-doubles-are-giving-strange-results) देखें। आप यह भी कोशिश कर सकते हैं: System.out.println (5.1d + 1.1d); परिणाम 6.2 के बजाय 6.199 99 99 99 99 99 99 होगा। मुझे लगता है कि कोई व्यक्ति दशकों के साथ संख्याओं को प्रारूपित करने के तरीके को देख रहा है क्योंकि स्ट्रिंग को डबल चर को छोड़ना होगा। – razvanone