2011-08-25 14 views
41

मेरी printf में, मैं %f उपयोग करने की आवश्यकता है, लेकिन मुझे यकीन है कि 2 दशमलव स्थानों के लिए काट-छांट करने के लिए कैसे नहीं कर रहा हूँ:printf% f?

उदाहरण: मुद्रित करने के लिए

3.14159

हो रही के रूप में:

3.14

उत्तर

69

इसका उपयोग करें:

printf ("%.2f", 3.14159); 
+8

यह ध्यान दिया जाना चाहिए कि यह वास्तव में संख्या को गोल करता है, यह सिर्फ इसे काट नहीं देता है। – jimpic

1

आप printf ("%। 2f", [double]) का प्रयास कर सकते हैं;

12

आप कुछ इस तरह का उपयोग कर सकते हैं:

printf("%.2f", number); 

आप अन्य कुछ के लिए स्ट्रिंग का उपयोग करने की आवश्यकता है प्रिंटिंग से, यू se NumberFormat वर्ग:

NumberFormat formatter = new DecimalFormatter("#.##"); 
String s = formatter.format(3.14159265); // Creates a string containing "3.14" 
+3

या 'स्ट्रिंग एस = स्ट्रिंग.फॉर्मैट ("%। 2f ", संख्या) '। – brimborium

3

Formatter वर्ग में वर्णित है, आप परिशुद्धता घोषित करने के लिए की जरूरत है। आपके मामले में %.2f। कई मामलों के लिए क्योंकि

2

उपयोग इस

printf ("%.2f", 3.14159); 
0

मैं printf के साथ यह जानने के लिए सुझाव है कि यह आपकी आवश्यकताओं के लिए पर्याप्त होगा और आप अन्य वस्तुओं को बनाने की जरूरत नहीं होगी।

double d = 3.14159;  
printf ("%.2f", d); 

लेकिन अगर आप गोलाई की जरूरत है इस पोस्ट को देखें

https://stackoverflow.com/a/153785/2815227

1
System.out.printf("%.2f", number); 

लेकिन, इस निकटतम दशमलव बिंदु आपने उल्लेख किया है। करने के लिए संख्या दौर होगा (के रूप में आपके मामले में आपको 3.14 मिल जाएगा क्योंकि 3.1415 9 से 2 दशमलव अंक 3.14 होंगे)

फ़ंक्शन के बाद से printf नंबर, कुछ अन्य संख्या कुछ ऐसा दिखाई देगा के लिए उत्तर दौर होगा,

System.out.printf("%.2f", 3.14136); -> 3.14 
System.out.printf("%.2f", 3.14536); -> 3.15 
System.out.printf("%.2f", 3.14836); -> 3.15 

तुम सिर्फ कटऑफ को दशमलव संख्या की जरूरत है और गोलाई के बिना एक k दशमलव संख्या तक सीमित हैं

कहें k = 2।

System.out.printf("%.2f", 3.14136 - 0.005); -> 3.14 
System.out.printf("%.2f", 3.14536 - 0.005); -> 3.14 
System.out.printf("%.2f", 3.14836 - 0.005); -> 3.14