1. doubleप्रकार

जावा doubleवास्तविक (आंशिक) संख्याओं के साथ काम करने के लिए प्रकार प्रदान करता है। यह 8 bytesस्मृति में रहता है (प्रकार के रूप में दो बार ) और मूल्यों को रेंज intमें स्टोर कर सकता है । तुलना के लिए: प्रकार से श्रेणी में मान संग्रहीत कर सकता है ।-1.7*10308+1.7*10308int-2*109+2*109

वास्तविक संख्या में, भिन्नात्मक भाग को दशमलव बिंदु के बाद लिखा जाता है। उदाहरण के लिए, 123.456, या 2.5, या 100.00, या 0.01। जब कंप्यूटर ऐसी संख्याओं से निपटते हैं, तो हम उन्हें फ़्लोटिंग पॉइंट नंबर कहते हैं।

वैसे, doubleप्रकार के अतिरिक्त, हमारे पास floatप्रकार भी है (जो आकार में केवल 4 बाइट है)। इसका नाम फ्लोटिंग पॉइंट से आता है । और नाम आता है डबल फ्लोटdouble से । A, a : बनाम से दोगुना बड़ा है । इसे डबल प्रिसिजन फ्लोटिंग-पॉइंट नंबर भी कहा जाता है ।doublefloat8 bytes4


2. एक doubleप्रकार बनाना

वास्तविक संख्याओं को संग्रहीत करने के लिए दोहरे प्रकार का उपयोग किया जाता है। कोड में एक चर बनाने के लिए जो वास्तविक संख्याओं को संग्रहीत कर सकता है, आपको इस तरह के एक कथन का उपयोग करने की आवश्यकता है:

double name;
doubleएक प्रकार बनाना

जहाँ नाम चर का नाम है। उदाहरण:

कथन विवरण
double price;
एक वास्तविक priceचर बनाया जाता है
double weight;
एक वास्तविक weightचर बनाया जाता है
double lightSpeed;
एक वास्तविक lightSpeedचर बनाया जाता है

प्रकार के साथ int, आप doubleएक साथ कई चर बनाने के लिए आशुलिपि का उपयोग कर सकते हैं:

double name 1, name 2, name 3;
एकाधिक doubleचर बनाना

और यहां तक ​​​​कि उन्हें तुरंत मान भी दें:

double name 1 = value 1, name 2 = value 2, name 3 = value 3;
doubleएकाधिक चर बनाना और प्रारंभ करना

उदाहरण:

कथन टिप्पणी
double price = 5.0;
चर भंडार5.0
double weight = 2;
चर भंडार2.0
double x = 1.0, y = 2.0, z = 3.0;

3. पूर्णांक और वास्तविक संख्या निर्दिष्ट करना

यह बुरा होगा यदि पूर्णांकों को केवल intचरों को और वास्तविक संख्याओं को केवल doubleचरों को सौंपा जा सकता है। हम दो प्रकार की संख्याओं के बीच रूपांतरण करने में सक्षम होना चाहते हैं। और जावा यह क्षमता प्रदान करता है।

सबसे पहले, वास्तविक और पूर्णांक संख्या दोनों को doubleचर के लिए निर्दिष्ट किया जा सकता है। पूर्णांक निर्दिष्ट करते समय, वे केवल वास्तविक संख्याओं में परिवर्तित हो जाते हैं। बेशक, प्रक्रिया में कुछ सटीकता खो सकती है।

कथन टिप्पणी
double price = 5.0;
चर भंडार5.0
double weight = 2;
चर भंडार2.0
int t = 1000;
double x =  t * t;

चर xभंडार1000000.0

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

कथन टिप्पणी
int t = 1000;
double x = t * 5.0;

चर xभंडार5000.0
System.out.println(5 * 2);
नंबर 10स्क्रीन पर प्रदर्शित होगा
System.out.println(5 * 2.0);
नंबर 10.0स्क्रीन पर प्रदर्शित होगा

intऔर अंत में, चरों को वास्तविक संख्या निर्दिष्ट करना भी संभव है । जब हम ऐसा करते हैं, तो वास्तविक संख्या के भिन्नात्मक भाग को हटा दिया जाता है - संख्या को निकटतम पूर्ण संख्या तक गोल कर दिया जाता है।

इसके अतिरिक्त, कंपाइलर को प्रोग्रामर को स्पष्ट रूप से दस्तावेज करने की आवश्यकता होती है कि क्या हो रहा है (यह सुनिश्चित करने के लिए कि अन्य प्रोग्रामर समझते हैं कि भिन्नात्मक भाग गिराया जा रहा है)। सामान्य तौर पर, ऐसा रूपांतरण कोड में ऐसा दिखता है:

integer_variable = (int)(real_number);
intएक चर के लिए एक वास्तविक संख्या निर्दिष्ट करना

उदाहरण:

कथन टिप्पणी
int x = (int)(5.5);
चर xभंडार5
double a = 5.999;
int x = (int)(a);
चर xभंडार5
double a = 5.999;
int b = 2;
int x = (int)(a * b);
चर xभंडार11


4. जावा में पूर्णांकों और वास्तविक संख्याओं को विभाजित करना

एक पूर्णांक को एक पूर्णांक से विभाजित करते समय, शेषफल हमेशा हटा दिया जाता है। फिर हम कैसे प्राप्त करने के 5लिए विभाजित कर सकते हैं ?22.5

सबसे पहले, ऐसा लगता है कि सही विकल्प है:

double d = 5 / 2;

लेकिन यह इतना आसान नहीं है. यहाँ समस्या यह है कि जावा मशीन पहले के मान की गणना करती है और उसके बाद ही चर 5 / 2को परिणाम देती है । dऔर 5 / 2ऑपरेशन पूर्णांक विभाजन है। इसका मतलब है d शामिल होगा 2या, अधिक सटीक होने के लिए,2.0

सही समाधान विभाजन में शामिल संख्याओं में से कम से कम एक वास्तविक संख्या के रूप में लिखना है (यानी दशमलव बिंदु के साथ):

double d = 5.0 / 2;
double d = 5 / 2.0;
double d = 5.0 / 2.0;

प्रत्येक भाव में, d शामिल होगा2.5

लेकिन क्या होगा अगर हम चर के साथ काम कर रहे हैं? क्या होगा अगर हमारे पास ऐसा कोड है ?:

int a = 5;
int b = 2;
double d = a / b;

यहाँ एक चालाक (और स्पष्ट) समाधान है - जावा मशीन को वास्तविक संख्या के रूप में एक से गुणा करके चर को वास्तविक संख्या में बदलने के लिए मजबूर करें ( 1.0)

int a = 5;
int b = 2;
double d = a * 1.0 / b;

ध्यान दें कि गुणा और भाग की समान प्राथमिकता है, और बाएं से दाएं की ओर किया जाता है। इसका अर्थ है कि यह मायने रखता है कि हम 1.0 को कहाँ गुणा करते हैं।

उदाहरण:

कथन अमल का आदेश परिणाम
int a = 5;
int b = 2;
double d = 1.0 * a / b;
(1.0 * a) / b; 2.5
int a = 5;
int b = 2;
double d = a * 1.0 / b;
(a * 1.0) / b; 2.5
int a = 5;
int b = 2;
double d = a / b * 1.0;
(a / b) * 1.0; 2.0