दिलचस्प पोस्ट
ऑपरेशन को अपडेट करने योग्य क्वेरी का उपयोग करना चाहिए। (त्रुटि 3073) माइक्रोसॉफ्ट एक्सेस जावा में दो तिथियों के बीच सप्ताह के दिनों की संख्या की गणना करें अनन्य मानों की गणना करें Jquery $ .ajax का उपयोग कर servlet के लिए अनुरोध पैरामीटर सरणी कैसे भेजें? कैसे दो HTML पृष्ठों के बीच चर का आदान प्रदान करने के लिए? कन्स्ट्रक्टर से विधि कॉलिंग क्या मुझे SQL सर्वर में थोड़ी फ़ील्ड को अनुक्रमणिका चाहिए? टैग्स का उपयोग करके फोर्स आईई संगतता मोड बंद करें टी-एसक्यूएल के साथ टेबल को पिवट कैसे करें? टेक्स्ट चौड़ाई की गणना करना क्या हैं। ए और .so फ़ाइलें? सर्विस स्टैक बनाम एएसपी.नेट वेब एपीआई ओविन स्व मेजबान और एएसपी नेट एमवीसी जो अधिक सही है: <h1> <a> … </a> </ h1> या <a> <h1> … </ h1> </a> विंडोज़ फार्म में सी # ऊर्ध्वाधर लेबल

जावा में पूर्णांक की श्रेणी

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

मूल रूप से, मैं दो मात्राएं – पूर्ण और कुल – लेना चाहता हूं – और उनको प्रतिशत के साथ आने के लिए विभाजित करना (कितना पूरा किया गया है)। मात्रा long यहां सेटअप है:

 long completed = 25000; long total = 50000; System.out.println(completed/total); // Prints 0 

मैंने परिणाम को दोहराए जाने का प्रयास किया है – यह 0.0 प्रिंट करता है। मुझसे कहां गलती हो रही है?

संयोग से, अगले चरण में इस परिणाम को 100 से गुणा करना है, जो मुझे लगता है कि इस छोटे से बाधा को आगे बढ़ाना एक बार आसान होना चाहिए।

बीटीडब्ल्यू नहीं यहाँ होमवर्क सिर्फ सादा पुराने नीस्क (और शायद बहुत कोडिंग आज)

वेब के समाधान से एकत्रित समाधान "जावा में पूर्णांक की श्रेणी"

उत्पादन में बदलाव बहुत देर हो गया है; गणना पहले से ही पूर्णांक अंकगणितीय में हुई है। आपको आदानों को double परिवर्तित करने की आवश्यकता है:

 System.out.println((double)completed/(double)total); 

ध्यान दें कि आपको वास्तव में दोनों को बदलने की ज़रूरत नहीं है; जब तक कि एक double , तब तक दूसरे पर रूपांतरित रूप से परिवर्तित हो जाएगा लेकिन मैं सममिति के लिए दोनों करना पसंद करता हूं।

इसके लिए आपको डबल्स की ज़रूरत नहीं है। बस पहले 100 गुणा करें और फिर विभाजित करें अन्यथा परिणाम 1 से कम होगा और शून्य के रूप में छोटा हो जाएगा, जैसा आपने देखा था।

संपादित करें: या यदि अतिप्रवाह होने की संभावना है, तो यह ओवरफ्लो (अर्थात लाभांश 922337203685477581 से बड़ा है), विभाजक को 100 से पहले विभाजित करें।

completed तरह से completed और total double या कम से कम उन पर दोहराएं, जब वे विचलन करते हैं। इरे ने नतीजों पर न सिर्फ नतीजों को दोहरा कर दिया।

उचित चेतावनी, float और double साथ काम करते समय एक फ्लोटिंग प्वाइंट सटीक समस्या है

यदि आप विभाजन से पहले एक फ्लोट में स्पष्ट रूप से दो मानों को नहीं डालें तो एक पूर्णांक विभाजन का उपयोग किया जाएगा (इसीलिए आपको 0 मिलता है)। आपको सिर्फ एक ऑप्टींग पॉइंट वैल्यू के लिए दो ऑपरेंडों में से एक की आवश्यकता है, ताकि सामान्य विभाजन का उपयोग किया जा सके (और अन्य पूर्णांक मान स्वचालित रूप से फ्लोट में बदल गया)।

बस के साथ प्रयास करें

 float completed = 50000.0f; 

और यह ठीक हो जाएगा

 In Java Integer/Integer = Integer Integer/Double = Double//Either of numerator or denominator must be floating point number 1/10 = 0 1.0/10 = 0.1 1/10.0 = 0.1 

बस उनमें से किसी भी प्रकार डालें।

जैसा कि जेएलएस द्वारा समझाया गया है, पूर्णांक आपरेशन काफी आसान है।

यदि एक शिफ्ट ऑपरेटर के अलावा एक पूर्णांक ऑपरेटर में कम से कम एक प्रकार का ऑपरेंड होता है, तो ऑपरेशन 64-बिट सटीकता का उपयोग करके किया जाता है, और संख्यात्मक ऑपरेटर का नतीजा लंबा है यदि अन्य ऑपरेंड लंबे समय तक नहीं है, तो यह पहली बार चौड़ा हुआ है (§5.1.5) ताकि संख्यात्मक प्रचार (§5.6) तक लंबा हो।

अन्यथा, 32-बिट परिशुद्धता का उपयोग करके ऑपरेशन किया जाता है, और संख्यात्मक ऑपरेटर का परिणाम प्रकार का int है यदि कोई ऑपरैंट एक पूर्णांक नहीं है, तो यह पहली बार संख्यात्मक पदोन्नति के द्वारा पूर्णांक टाइप करने के लिए चौड़ा है

इसे कम करने के लिए, एक ऑपरेशन केवल एकमात्र अपवाद पर एक int परिणाम देगा कि इसमें बहुत long मूल्य है

 int = int + int long = int + long int = short + short 

ध्यान दें कि ऑपरेटर की प्राथमिकता महत्वपूर्ण है, इसलिए यदि आपके पास है

 long = int * int + long 

int * int ऑपरेशन के परिणामस्वरूप एक int होगा, यह long ऑपरेशन int + long long दौरान बढ़ावा देगा

जैसा कि आपके आउटपुट के परिणामस्वरूप एक दोगुना हो, आप को पूरा किया गया चर या कुल वैरिएबल या दोनों को विभाजित करते समय दोगुना करना चाहिए।

तो, सही आरोपण होगा:

 System.out.println((double)completed/total);