2012-03-02 11 views
8

हाय मैं स्ट्रिंग बिल्डर में विभाजित और मुद्रण कि स्ट्रिंग बिल्डर मुझे मेरे कोड को दिखाने के बाद मुद्रित करने के लिए कोशिश कर रहा हूँ,स्ट्रिंग बिल्डर का उपयोग कर जावा में दो दशमलव स्थानों तक प्रिंट कैसे करें?

string.append("Memomry usage:total:"+totalMemory/1024/1024+ 
"Mb-used:"+usageMemory/1024/1024+ 
" Mb("+Percentage+"%)-free:"+freeMemory/1024/1024+ 
" Mb("+Percentagefree+"%)"); 
ऊपर कोड "totalmemory" में

और "freememory" बिंदु में डबल प्रकार के होने बाइट्स महत्व का है शून्य नहीं है इसलिए मैं इसे "एमबी" और "स्ट्रिंग" में प्राप्त करने के लिए दो बार "1024" से विभाजित करता हूं, इस कोड का उपयोग करने के बाद स्ट्रिंग बिल्डर का चर है। मैं इसे नीचे दिखा रहा हूं, जैसा कि नीचे दिखाया गया है,

Used Memory:Memomry usage: 
total:13.3125Mb-used:0.22920989990234375Mb (0.017217645063086855%) 
-free:13.083290100097656Mb (0.9827823549369131%) 

मैं इस पटर में इस "प्रयुक्त: 2345.25" जैसे एमबी में twodecimal जगह और उपयोग और मुक्त मेमोरी के मूल्यों में प्रतिशत प्राप्त करना चाहता हूं n अपने सुझाव के लिए

होप्स याद

अग्रिम धन्यवाद

+0

क्यों 'स्ट्रिंगबिल्डर का उपयोग करना'? यह इस समस्या के लिए गलत तकनीक है। जवाब देखें ... – EJP

उत्तर

12

कैसे String.format()?

System.out.println(String.format("output: %.2f", 123.456)); 

आउटपुट:

output: 123.46 
2

इस

double d = 1.234567; 
    DecimalFormat df = new DecimalFormat("#.##"); 
    System.out.print(df.format(d)); 

तरह का प्रयास करें DecimalFormat का उपयोग करना, हम फ़ॉर्मेट कर सकते हैं जिस तरह से हम देखना चाहते थे।

+0

यह SO उत्तर भी देखें http://stackoverflow.com/a/5710406/713414 – Jayy

1

आप दो दशमलव स्थानों पर प्रिंट करने के लिए DecimalFormat का उपयोग कर सकते हैं। तो, दो दशमलव स्थानों के साथ x = 2345.2512 मुद्रित करने के लिए, आप

NumberFormat f = new DecimalFormat("#.00"); 
System.out.println(f.format(x)); 

जो 2345.25 प्रिंट होगा लिखेंगे।

1

भले ही यह NumberFormat उपयोग करना संभव है और यह इस समस्या के लिए उपवर्ग DecimalFormat है, इन कक्षाओं कि आपके आवेदन के लिए आवश्यक नहीं किया जा सकता है की कार्यक्षमता का एक बहुत प्रदान करते हैं।

यदि उद्देश्य सिर्फ सुंदर प्रिंटिंग है, तो मैं स्ट्रिंग क्लास के प्रारूप फ़ंक्शन का उपयोग करने की अनुशंसा करता हूं। अपने विशिष्ट कोड के लिए यह इस तरह दिखेगा:

string.append(String.format("Memomry usage:total:%1.2f Mb-used:%1.2f Mb(%1.2f %%)-free:%1.2f Mb(%1.2f %%)",totalMemory/1024/1024,usageMemory/1024/1024,Percentage,freeMemory/1024/1024,Percentagefree)); 

आप एक मानक प्रारूप है, जिसमें सभी नंबरों को चाहे वे तार से पार्स या तार के लिए स्वरूपित किया जा रहा है पर ध्यान दिए बिना प्रतिनिधित्व कर रहे हैं निर्दिष्ट करने के लिए इच्छुक है, तो मैं सिफारिश करेंगे * प्रारूप कक्षाओं के सिंगलेट्स का उपयोग करना। वे आपको मानक स्वरूपों का उपयोग करने और विधियों के बीच प्रारूप विवरण पास करने की अनुमति देते हैं।

आशा है कि आपके आवेदन में उपयोग करने के लिए सही विधि का चयन करने में आपकी सहायता करें।

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