दिलचस्प पोस्ट
क्लास के पास कोई शुरुआती स्विफ्ट नहीं है Express.js पर HTTPS को सक्षम करना ऑरेकल में सभी टेबल बाधाओं को अक्षम करें MySQL – तालिकाओं के बीच 2 अलग-अलग डेटाबेस में शामिल हो? प्रमाणपत्र डाउनलोड किए बिना जावा और HTTPS यूआरएल कनेक्शन IIS7 पर चलते समय 500 एमबी तक maxAllowedContentLength कैसे सेट करें? प्रपत्र प्रमाणीकरण समयबाह्य बनाम सत्रस्टेट टाइमआउट एंड्रॉइड वेबव्यू – अवरोधन क्लिक 'COLLATE SQL_Latin1_General_CP1_CI_AS' क्या करता है? WampServer नारंगी आइकन .NET रिफ्लेक्टर से बेहतर कुछ? क्या मुझे ईजेबी या @ इंजेक्शन का उपयोग करना चाहिए Xcode 8 बीटा 3 लीगेसी स्विफ्ट समस्या का उपयोग करें मल्टी-मैपर ऑब्जेक्ट पदानुक्रम बनाने के लिए जावा में दो पूर्णांक arrays की तुलना करना

दो पूर्णांक का विभाजन जावा में 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

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

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