दिलचस्प पोस्ट
पर कस्टम कस्टम देखें विवरण किसी लिंक सूची में एक पाश को कैसे पता लगा सकता है? # यदि DEBUG बनाम कंडीशनल ("DEBUG") एक SqlDataReader वस्तु में स्तंभ नाम की जांच करें कैसे php में चरित्र 65279 गूंज से बचने के लिए? (यह प्रश्न भी जावास्क्रिप्ट xmlhttp.responseText (AJAX) से संबंधित है) सी # में FindTimeZoneById () के साथ उपयोग करने के लिए टाइमज़ोन आईडी की सूची? पासिंग पैरामीटर JavaFX FXML स्विफ्ट: आईएसओ 8601, आरएफसी 3339, यूटीसी समय क्षेत्र के रूप में एक डेट टाइम स्टाम्प और प्रारूप कैसे बना सकता है? जावा को सीरियलजएबल अंतरफलक की आवश्यकता क्यों है? Node.js में एसिंक्रोनस फ़ंक्शन के लंबे घोंसले के शिकार से बचने के लिए कैसे करें क्यों JSF सर्वर पर यूआई घटकों की स्थिति बचाता है? स्थानीय रूप से एक Nuget पैकेज .nupkg फ़ाइल को कैसे स्थापित करें? इनलाइन ब्लॉक तत्वों के बीच की जगह को कैसे निकालना है? ExpressJS कैसे एक आवेदन की संरचना? एक MVC बाल कार्रवाई क्या है?

दो पूर्णांक का विभाजन जावा में 0.0 क्यों मिलता है?

int totalOptCount = 500; int totalRespCount=1500; float percentage =(float)(totalOptCount/totalRespCount); 

यह हमेशा 0.0 मान क्यों वापस करता है? इसके अलावा मैं इसे 00.00 प्रारूप में प्रारूपित करना और स्ट्रिंग में कनवर्ट करना चाहता हूं?

वेब के समाधान से एकत्रित समाधान "दो पूर्णांक का विभाजन जावा में 0.0 क्यों मिलता है?"

क्योंकि विभाजन के बाद फ्लोट का रूपांतरण होता है। आप की जरूरत है:

 float percentage = ((float) totalOptCount) / totalRespCount; 

आपको इस तरह से कुछ का उपयोग करने में सक्षम होना चाहिए:

 String str = String.format("%2.02f", percentage); 

यदि आप int वैल्यू का उपयोग कर रहे हैं, तो double का उपयोग करना एक बेहतर विकल्प हो सकता है और कम गोल त्रुटि हो सकती है float त्रुटि के बिना ~ 16 मिलियन तक के मूल्यों का प्रतिनिधित्व कर सकता है double सही सभी int मानों का प्रतिनिधित्व कर सकते हैं

 double percentage =(double) totalOptCount / totalRespCount; 

आमतौर पर प्रतिशत 100 से गुणा किया जाता है, जिसका अर्थ है कि आप कलाकारों को छोड़ सकते हैं।

 double percentage = 100.0 * totalOptCount / totalRespCount; 

जावा में पूर्णांक डिवीजन (जिसमें लांग, शोर्ट, बाइट, चार, इंट शामिल है) हमेशा एक इंट (या लम्बाई देता है, यदि पैरामीटर में से एक लंबा है) इस गणना के बाद आपका रूपांतरण होता है

(फ़ॉर्मेटिंग प्रश्न पहले से अन्य उत्तरों के उत्तर दिए गए हैं – वैकल्पिक रूप से आप जावा.टेक्स्ट.नंबरफ़ॉर्मेट पर भी एक नजर डाल सकते हैं, विशेष रूप से java.text.DecimalFormat।)

 String.format("%2.02f", (float)totalOptCount/totalRespCount); 

एक प्रारूप के रूप में डबल और प्रिंट आउट करने के लिए, आप प्रयोग का उपयोग कर सकते हैं

 System.out.println(new DecimalFormat("##.##").format(yourDouble) + "%")); 

(totalOptCount/totalRespCount)

यहां लाभांश और विभाजक दोनों प्रकार के प्रकार हैं, जिसका अर्थ है कि वे केवल पूर्णांक मान की अनुमति देंगे और इस तरह के समीकरण का उत्तर हमेशा एक पूर्णांक होगा।

अगर मैं इसे तोड़ता हूं तो यह नीचे की तरह कुछ होगा

(double)(500/1500)

वास्तविक गणना के अनुसार, 500/1500 आपको 0.33333 देगा, लेकिन संकलक इसे पूर्णांक में शाब्दिक रूप में बदल देगा क्योंकि दोनों प्रारुप प्रकार के होते हैं

(double)(0)

संकलक को इस 0 मान को दोगुना करने के लिए एक निर्देश मिलता है ताकि आपको परिणाम के रूप में 0.0

0.0

और फिर आप परिणाम को किसी भी प्रारूप में बदल सकते हैं, जैसे कि @ ज़ैच जानिकी द्वारा चुने गए।

ध्यान रखें कि यदि दोनों ऑपरेंड परिणाम की तुलना में एक ही प्रकार के होते हैं तो समान प्रकार का भी होगा।