2014-12-12 7 views
5

में $ सम्मिलित करना मैं संख्या के सामने एक डॉलर के हस्ताक्षर के लिए एक फ्लोट प्रारूप का प्रयास कर रहा हूं। वर्तमान में मैं बाईं ओर से 150 रिक्त स्थान मुद्रित करने की कोशिश कर रहा हूं।स्वरूपित फ्लोट जावा

System.out.printf("%150.2f", orderTotal);

यह मैं क्या उपयोग कर रहा हूँ, लेकिन मैं समझ नहीं सकता है, जहां $ मुझे लगता है मैं एक स्ट्रिंग में पूरे बात कर सकता है डाल करने के लिए है, लेकिन मैं सोच रहा था अगर वहाँ के लिए एक रास्ता है क्या मैं खोज रहा हूँ?

+0

'\ $' क्या यह काम करता है? - या प्रतीक्षा करें, आप बाईं ओर 150 रिक्त स्थान चाहते हैं तो '$ + ऑर्डर कुल' प्रिंट करें? – Emz

+1

किसी भी प्रारूप विनिर्देशक के बाहर प्रारूप स्ट्रिंग में डाली गई कुछ भी उतनी ही दिखाई देगी जितनी आप इसे डालते हैं। यहां '% 150.2f' प्रारूप विनिर्देशक है, इसलिए जो कुछ भी आपने पहले या बाद में रखा है वह सचमुच दिखाई देगा। – ajb

+0

@ajb: कौन सी समस्या है, क्या यह बायीं तरफ 150 रिक्त स्थान जोड़ते समय नहीं है? – Ryan

उत्तर

2

कैसे

के बारे में
System.out.printf("%150s", String.format ("$%.2f", orderTotal)); 
1

मुझे लगता है कि यह आप दे देंगे आप क्या चाहते हैं:

System.out.printf("%150s", "$" + String.format("%.2f", orderTotal)); 

का उपयोग %150s सही रास्ते पर डाल, मुझे लगता है। अपनी फ्लोट को प्रारूपित करने के लिए ताकि उसके पास दो दशमलव स्थान हों, लेकिन बाईं ओर कोई अतिरिक्त रिक्त स्थान जोड़ने के बिना, प्रारूप विनिर्देशक में चौड़ाई फ़ील्ड को छोड़ दें।

मैं यहां मान रहा हूं कि आप चाहते हैं कि पूरे क्षेत्र में 150 की चौड़ाई हो; यानी, यदि मुद्रा भाग "$101.20" है, तो आप बाईं ओर 143 रिक्त स्थान जोड़ना चाहते हैं। यदि आप वास्तव में राशि के बावजूद 150 रिक्त स्थान चाहते हैं, तो रीमेस का जवाब काम करेगा।

इसके अलावा, मुद्रा के साथ व्यवहार करते समय float या double के बजाय BigDecimal का उपयोग करने पर विचार करें। फ़्लोटिंग-पॉइंट प्रकार दशमलव स्थानों के साथ संख्याओं को ठीक से संभाल नहीं सकते हैं।

2

String.format कार्य के लिए केवल गलत उपकरण है। DecimalFormat.getCurrencyInstance देखें जो आप उपयोग करना चाहते हैं।

+0

मिल गया है कृपया दिखाएं कि आप ओपी के प्रश्न के लिए किस पैटर्न का उपयोग करेंगे –

संबंधित मुद्दे