बीच क्या अंतर है decimal
, float
और double
.NET में?
इनमें से कोई कब इस्तेमाल करेगा?
बीच क्या अंतर है decimal
, float
और double
.NET में?
इनमें से कोई कब इस्तेमाल करेगा?
जवाबों:
float
और double
कर रहे हैं चल बाइनरी बिंदु प्रकार । दूसरे शब्दों में, वे इस तरह एक संख्या का प्रतिनिधित्व करते हैं:
10001.10010110011
बाइनरी नंबर और बाइनरी पॉइंट का स्थान दोनों मूल्य के भीतर एन्कोडेड हैं।
decimal
एक अस्थायी दशमलव बिंदु प्रकार है । दूसरे शब्दों में, वे इस तरह एक संख्या का प्रतिनिधित्व करते हैं:
12345.65789
फिर, दशमलव बिंदु की संख्या और स्थान दोनों मूल्य के भीतर एन्कोडेड हैं - यही वह है जो decimal
स्थिर बिंदु प्रकार के बजाय अभी भी एक अस्थायी बिंदु प्रकार बनाता है ।
ध्यान देने वाली महत्वपूर्ण बात यह है कि मनुष्यों का उपयोग दशमलव रूप में गैर-पूर्णांक का प्रतिनिधित्व करने के लिए किया जाता है, और दशमलव प्रतिनिधित्व में सटीक परिणामों की अपेक्षा करता है; बाइनरी फ़्लोटिंग पॉइंट - 0.1 में सभी दशमलव संख्याएँ बिल्कुल प्रतिनिधित्व करने योग्य नहीं हैं, उदाहरण के लिए - इसलिए यदि आप बाइनरी फ़्लोटिंग पॉइंट वैल्यू का उपयोग करते हैं, तो आप वास्तव में 0.1 के लिए एक अनुमान प्राप्त करेंगे। फ़्लोटिंग दशमलव बिंदु का उपयोग करते समय आपको अभी भी सन्निकटन मिलेंगे - उदाहरण के लिए 1 को 3 से विभाजित करने के परिणाम का बिल्कुल प्रतिनिधित्व नहीं किया जा सकता है।
क्या जब उपयोग करने के लिए के रूप में:
उन मूल्यों के लिए जो "स्वाभाविक रूप से सटीक दशमलव" हैं, यह उपयोग करना अच्छा है decimal
। यह आमतौर पर मनुष्यों द्वारा आविष्कृत किसी भी अवधारणा के लिए उपयुक्त है: वित्तीय मूल्य सबसे स्पष्ट उदाहरण हैं, लेकिन अन्य भी हैं। उदाहरण के लिए, गोताखोरों या आइस स्केटर्स को दिए गए स्कोर पर विचार करें।
उन मूल्यों के लिए जो प्रकृति के अधिक कलाकृतियाँ हैं जिन्हें वास्तव में वैसे भी मापा नहीं जा सकता है , float
/ double
अधिक उपयुक्त हैं। उदाहरण के लिए, वैज्ञानिक डेटा को आमतौर पर इस रूप में दर्शाया जाएगा। यहाँ, मूल मानों को "दशमलव के साथ सटीक" शुरू नहीं किया जाएगा, इसलिए "दशमलव सटीकता" बनाए रखने के लिए अपेक्षित परिणामों के लिए यह महत्वपूर्ण नहीं है। दशमलव की तुलना में काम करने के लिए फ्लोटिंग बाइनरी पॉइंट प्रकार बहुत तेज़ हैं।
float
/ double
आमतौर पर संख्याओं का प्रतिनिधित्व नहीं करते हैं 101.101110
, आम तौर पर इसे कुछ के रूप में दर्शाया जाता है 1101010 * 2^(01010010)
- एक घातांक
float
एक C # उपनाम है और एक .Net प्रकार नहीं है। यह System.Single
.. single
और double
द्विआधारी बिंदु प्रकार तैर रहे हैं।
परिशुद्धता मुख्य अंतर है।
फ्लोट - 7 अंक (32 बिट)
डबल -15-16 अंक (64 बिट)
दशमलव -28-29 महत्वपूर्ण अंक (128 बिट)
दशमलव में बहुत अधिक सटीकता होती है और आमतौर पर वित्तीय अनुप्रयोगों के भीतर उपयोग किया जाता है जिसमें उच्च सटीकता की आवश्यकता होती है। दशमलव एक डबल / फ्लोट की तुलना में बहुत धीमा (कुछ परीक्षणों में 20X गुना तक) है।
दशमलव और फ़्लोट्स / डबल्स की तुलना बिना कास्ट के नहीं की जा सकती है जबकि फ़्लोट्स और डबल्स कर सकते हैं। दशमलव भी एन्कोडिंग या अनुगामी शून्य की अनुमति देता है।
float flt = 1F/3;
double dbl = 1D/3;
decimal dcm = 1M/3;
Console.WriteLine("float: {0} double: {1} decimal: {2}", flt, dbl, dcm);
परिणाम :
float: 0.3333333
double: 0.333333333333333
decimal: 0.3333333333333333333333333333
0.1
ही है - वास्तविक दुनिया में शायद ही ऐसा हो! किसी भी परिमित भंडारण प्रारूप बिट मूल्यों के परिमित संख्या के लिए संभावित मूल्यों की एक अनंत संख्या का पता लगाएगा। उदाहरण के लिए, float
conflate जाएगा 0.1
और 0.1 + 1e-8
है, जबकि decimal
conflate जाएगा 0.1
और 0.1 + 1e-29
। निश्चित रूप से, दी गई सीमा के भीतर , कुछ मूल्यों को सटीकता के शून्य नुकसान के साथ किसी भी प्रारूप में दर्शाया जा सकता है (जैसे float
कि सटीकता के शून्य नुकसान के साथ 1.6e7 तक किसी भी पूर्णांक को संग्रहीत कर सकते हैं) - लेकिन यह अभी भी अनंत सटीकता नहीं है।
0.1
है एक विशेष मूल्य नहीं ! केवल एक चीज जो 0.1
"से बेहतर" बनाती है 0.10000001
, क्योंकि मानव आधार 10 पसंद करता है। और यहां तक कि एक float
मान के साथ , यदि आप 0.1
एक ही तरह से दो मूल्यों को शुरू करते हैं, तो वे दोनों समान मूल्य होंगे । यह सिर्फ इतना है कि मूल्य बिल्कुल नहीं होगा 0.1
- यह निकटतम मूल्य होगा 0.1
जो बिल्कुल एक के रूप में प्रतिनिधित्व किया जा सकता हैfloat
। ज़रूर, बाइनरी फ़्लोट्स के साथ (1.0 / 10) * 10 != 1.0
, लेकिन दशमलव फ़्लोट्स के साथ, (1.0 / 3) * 3 != 1.0
या तो। न ही पूरी तरह से सटीक है।
double a = 0.1; double b = 0.1;
तो a == b
सच होगा । यह सिर्फ इतना है a
और दोनों बिल्कुल समान नहीं b
होंगे । C # में, अगर आप करते हैं तो यह भी सच होगा। लेकिन उस मामले में, न की और न ही होगा बिल्कुल बराबर - वे दोनों बराबर । में दोनों मामलों में, कुछ सटीकता प्रतिनिधित्व की वजह से खो दिया है। आप हठपूर्वक कहते हैं कि "अनंत" सटीक है, जो गलत है । 0.1
decimal a = 1.0m / 3.0m; decimal b = 1.0m / 3.0m;
a == b
a
b
1/3
0.3333...
decimal
दशमलव संरचना को सटीकता की आवश्यकता वाले वित्तीय गणना के लिए कड़ाई से तैयार किया जाता है, जो कि गोलाई के अपेक्षाकृत असहिष्णु हैं। हालांकि, वैज्ञानिक अनुप्रयोगों के लिए दशमलव कई कारणों से पर्याप्त नहीं हैं:
+---------+----------------+---------+----------+---------------------------------------------+
| C# | .Net Framework | Signed? | Bytes | Possible Values |
| Type | (System) type | | Occupied | |
+---------+----------------+---------+----------+---------------------------------------------+
| sbyte | System.Sbyte | Yes | 1 | -128 to 127 |
| short | System.Int16 | Yes | 2 | -32768 to 32767 |
| int | System.Int32 | Yes | 4 | -2147483648 to 2147483647 |
| long | System.Int64 | Yes | 8 | -9223372036854775808 to 9223372036854775807 |
| byte | System.Byte | No | 1 | 0 to 255 |
| ushort | System.Uint16 | No | 2 | 0 to 65535 |
| uint | System.UInt32 | No | 4 | 0 to 4294967295 |
| ulong | System.Uint64 | No | 8 | 0 to 18446744073709551615 |
| float | System.Single | Yes | 4 | Approximately ±1.5 x 10-45 to ±3.4 x 1038 |
| | | | | with 7 significant figures |
| double | System.Double | Yes | 8 | Approximately ±5.0 x 10-324 to ±1.7 x 10308 |
| | | | | with 15 or 16 significant figures |
| decimal | System.Decimal | Yes | 12 | Approximately ±1.0 x 10-28 to ±7.9 x 1028 |
| | | | | with 28 or 29 significant figures |
| char | System.Char | N/A | 2 | Any Unicode character (16 bit) |
| bool | System.Boolean | N/A | 1 / 2 | true or false |
+---------+----------------+---------+----------+---------------------------------------------+
मैं अन्य उत्तर और टिप्पणियों में पहले से वर्णित अच्छी (और कुछ बुरी) जानकारी को दोहरा नहीं सकता, लेकिन मैं आपके टिप प्रश्न का उत्तर एक टिप के साथ दूंगा:
इनमें से कोई कब इस्तेमाल करेगा?
गिने गए मानों के लिए दशमलव का उपयोग करें
मापा मूल्यों के लिए फ्लोट / डबल का उपयोग करें
कुछ उदाहरण:
पैसा (क्या हम पैसा गिनते हैं या पैसा मापते हैं?)
दूरी (क्या हम दूरी या माप दूरी की गणना करते हैं? *)
स्कोर (क्या हम स्कोर की गणना करते हैं या स्कोर मापते हैं?)
हम हमेशा पैसे गिनते हैं और इसे कभी नहीं मापना चाहिए। हम आमतौर पर दूरी को मापते हैं। हम अक्सर स्कोर गिनते हैं।
* कुछ मामलों में, जिसे मैं नाममात्र की दूरी कहूंगा , हम वास्तव में दूरी की 'गणना' करना चाहते हैं। उदाहरण के लिए, हो सकता है कि हम उन देश चिह्नों के साथ काम कर रहे हैं जो शहरों की दूरियां दिखाते हैं, और हम जानते हैं कि उन दूरियों में कभी भी एक से अधिक दशमलव अंक (xxx.x किमी) नहीं होते हैं।
float
परिशुद्धता के 7 अंक
double
सटीक के लगभग 15 अंक हैं
decimal
परिशुद्धता के बारे में 28 अंक है
यदि आपको बेहतर सटीकता की आवश्यकता है, तो फ्लोट के बजाय डबल का उपयोग करें। आधुनिक सीपीयू में दोनों डेटा प्रकारों का प्रदर्शन लगभग समान होता है। फ्लोट का उपयोग करने का एकमात्र लाभ यह है कि वे कम जगह लेते हैं। व्यावहारिक रूप से केवल तभी मायने रखता है जब आपको उनमें से कई मिल गए हों।
मैंने पाया कि यह दिलचस्प है। फ्लोटिंग-पॉइंट अंकगणित के बारे में हर कंप्यूटर वैज्ञानिक को क्या जानना चाहिए
double
उन मामलों में (और मूल रूप से केवल उन मामलों में) लेखांकन अनुप्रयोगों में उचित विचार करूंगा, जहां 32 बिट्स से बड़ा कोई पूर्णांक प्रकार उपलब्ध नहीं था, और इसका double
उपयोग 53-बिट पूर्णांक प्रकार (जैसे धारण करने के लिए) के रूप में किया जा रहा था पेनी की पूरी संख्या, या एक प्रतिशत की पूरी संख्या)। आजकल ऐसी चीजों के लिए ज्यादा उपयोग नहीं किया जाता है, लेकिन कई भाषाओं ने 64-बिट (या कुछ मामलों में 32-बिट) पूर्णांक गणित प्राप्त करने से बहुत पहले डबल-सटीक फ़्लोटिंग-पॉइंट मान का उपयोग करने की क्षमता प्राप्त की।
Real
IIRC इकाई परिशुद्धता के साथ 1.8E + 19 तक मूल्यों का प्रतिनिधित्व कर सकता है। मुझे लगता है कि यह एक लेखांकन अनुप्रयोग के लिए Real
पैसे की एक पूरी संख्या का प्रतिनिधित्व करने के लिए उपयोग करने के लिए बहुत ही
double
प्रकार है जिसकी इकाई सटीकता 9E15 तक थी। यदि किसी को संपूर्ण संख्याओं को संग्रहीत करने की आवश्यकता होती है जो कि सबसे बड़े उपलब्ध पूर्णांक प्रकार से बड़े होते हैं, का उपयोग double
करना बहुत आसान है और बहु-सटीक गणित को विफल करने की तुलना में अधिक कुशल है, विशेष रूप से यह देखते हुए कि प्रोसेसर के पास 16x16-> 32 या प्रदर्शन करने के निर्देश हैं। ..
जिसका किसी ने उल्लेख नहीं किया है
डिफ़ॉल्ट सेटिंग्स में, फ़्लोट्स (System.Single) और डबल्स (System.Double) कभी भी ओवरफ़्लो जाँच का उपयोग नहीं करेगा, जबकि दशमलव (System.Decimal) हमेशा ओवरफ़्लो जाँच का उपयोग करेगा।
मेरा मतलब
decimal myNumber = decimal.MaxValue;
myNumber += 1;
फेंकता है OverflowException ।
लेकिन ये नहीं हैं:
float myNumber = float.MaxValue;
myNumber += 1;
और
double myNumber = double.MaxValue;
myNumber += 1;
float.MaxValue+1 == float.MaxValue
, बस decimal.MaxValue+0.1D == decimal.MaxValue
। शायद आपका मतलब कुछ ऐसा था float.MaxValue*2
?
System.Decimal
एक अपवाद बस से पहले ही पूरे इकाइयों भेद करने में असमर्थ हो जाता है फेंकता है, लेकिन एक आवेदन जैसे डॉलर और सेंट, कि बहुत देर हो चुकी हो सकता है के साथ काम कर होना चाहिए किया जाता है।
decimal
से शून्य (CS0020) से विभाजित करने का प्रयास करते हैं, तो संकलन विफल हो जाता है , और अभिन्न शाब्दिकों का भी यही हाल है। हालाँकि, यदि रनटाइम दशमलव मान शून्य से विभाजित होता है, तो आपको एक अपवाद मिलेगा, संकलन त्रुटि नहीं।
पूर्णांक, जैसा कि उल्लेख किया गया था, पूरे नंबर हैं। वे बिंदु को कुछ स्टोर नहीं कर सकते, जैसे .7, .42, और .007। यदि आपको ऐसी संख्याएँ संग्रहीत करने की आवश्यकता है जो पूरी संख्याएँ नहीं हैं, तो आपको एक भिन्न प्रकार के चर की आवश्यकता होगी। आप डबल प्रकार या फ्लोट प्रकार का उपयोग कर सकते हैं। आप इस प्रकार के चर को ठीक उसी तरह सेट करते हैं: शब्द का उपयोग करने के बजाय int
, आप टाइप करते हैं double
या float
। ऐशे ही:
float myFloat;
double myDouble;
( float
"फ्लोटिंग पॉइंट" के लिए संक्षिप्त है, और अंत में एक बिंदु के साथ एक संख्या का मतलब है।)
दोनों के बीच का अंतर उन संख्याओं के आकार में है जिन्हें वे पकड़ सकते हैं। इसके लिए float
, आपकी संख्या में 7 अंक तक हो सकते हैं। के लिए double
है, आप 16 अंक से ऊपर हो सकता है। अधिक सटीक होने के लिए, यहां आधिकारिक आकार है:
float: 1.5 × 10^-45 to 3.4 × 10^38
double: 5.0 × 10^-324 to 1.7 × 10^308
float
एक 32-बिट संख्या है, और double
64-बिट संख्या है।
कोड पर पाने के लिए अपने नए बटन पर डबल क्लिक करें। निम्नलिखित तीन पंक्तियों को अपने बटन कोड में जोड़ें:
double myDouble;
myDouble = 0.007;
MessageBox.Show(myDouble.ToString());
अपने कार्यक्रम को रोकें और कोडिंग विंडो पर वापस लौटें। इस पंक्ति को बदलें:
myDouble = 0.007;
myDouble = 12345678.1234567;
अपना प्रोग्राम चलाएं और अपने डबल बटन पर क्लिक करें। संदेश बॉक्स सही ढंग से संख्या प्रदर्शित करता है। अंत में एक और नंबर जोड़ें, और C # फिर से ऊपर या नीचे गोल होगा। नैतिकता है अगर आप सटीकता चाहते हैं, गोलाई से सावधान रहें!
decimal
वास्तव में दशमलव प्रारूप में संग्रहीत किया जाता है (जैसा कि आधार 2 के विपरीत है; इसलिए यह दो संख्यात्मक प्रणालियों के बीच रूपांतरण के कारण अंकों को खो या गोल नहीं करेगा); इसके अतिरिक्त, decimal
NaN, -0, or, या-Na जैसे विशेष मूल्यों की कोई अवधारणा नहीं है।
यह मेरे लिए एक दिलचस्प धागा रहा है, आज के रूप में, हमारे पास सिर्फ एक छोटा सा बग है, decimal
एक से कम परिशुद्धता होने के बारे में float
।
हमारे सी # कोड में, हम एक एक्सेल स्प्रेडशीट से संख्यात्मक मान पढ़ रहे हैं, उन्हें एक में परिवर्तित कर रहे हैं decimal
, फिर decimal
एक SQL सर्वर डेटाबेस में सहेजने के लिए इस सेवा को वापस भेज रहे हैं ।
Microsoft.Office.Interop.Excel.Range cell = …
object cellValue = cell.Value2;
if (cellValue != null)
{
decimal value = 0;
Decimal.TryParse(cellValue.ToString(), out value);
}
अब, हमारे लगभग सभी एक्सेल मूल्यों के लिए, इसने खूबसूरती से काम किया। लेकिन कुछ के लिए, बहुत छोटे एक्सेल मान, decimal.TryParse
पूरी तरह से खोए मूल्य का उपयोग करते हुए । ऐसा ही एक उदाहरण है
सेलवैल्यू = 0.00006317592
Decimal.TryParse (cellValue.ToString (), आउट वैल्यू); // 0 पर लौटेगा
समाधान, विचित्र रूप से, एक्सेल मूल्यों को double
पहले में बदलना था , और फिर एक में decimal
:
Microsoft.Office.Interop.Excel.Range cell = …
object cellValue = cell.Value2;
if (cellValue != null)
{
double valueDouble = 0;
double.TryParse(cellValue.ToString(), out valueDouble);
decimal value = (decimal) valueDouble;
…
}
भले ही double
एक से कम परिशुद्धता है decimal
, यह वास्तव में सुनिश्चित छोटे संख्या अभी भी पहचाना जाएगा। किसी कारण से, double.TryParse
वास्तव में ऐसी छोटी संख्या को पुनः प्राप्त करने में सक्षम था, जबकि decimal.TryParse
उन्हें शून्य पर सेट किया जाएगा।
अजीब। बहुत अजीब।
decimal.Parse("0.00006317592")
काम करता है - आपको कुछ और मिल रहा है। - संभवतः वैज्ञानिक संकेतन?
गेम और एंबेडेड सिस्टम जैसे एप्लिकेशन के लिए जहां मेमोरी और परफॉर्मेंस दोनों क्रिटिकल हैं, फ्लोट आमतौर पर न्यूमेरिक प्रकार की पसंद है क्योंकि यह तेज और डबल का साइज आधा होता है। इंटेगर पसंद का हथियार हुआ करते थे, लेकिन फ्लोटिंग पॉइंट परफॉर्मेंस आधुनिक प्रोसेसर में पूर्णांक से आगे निकल गया है। दशमलव सही है!
दशमलव, डबल और फ्लोट चर प्रकार भिन्न होते हैं, जिस तरह से वे मूल्यों को संग्रहीत करते हैं। परिशुद्धता मुख्य अंतर है जहां फ्लोट एकल परिशुद्धता (32 बिट) फ्लोटिंग पॉइंट डेटा प्रकार है, डबल एक डबल परिशुद्धता (64 बिट) फ्लोटिंग पॉइंट डेटा प्रकार है और दशमलव 128-बिट फ्लोटिंग पॉइंट डेटा प्रकार है।
फ्लोट - 32 बिट (7 अंक)
डबल - 64 बिट (15-16 अंक)
दशमलव - 128 बिट (28-29 महत्वपूर्ण अंक)
अधिक के बारे में ... दशमलव, फ्लोट और डबल के बीच का अंतर
इन सभी प्रकारों के साथ समस्या यह है कि एक निश्चित गतिरोध कम हो जाता है और यह समस्या छोटे दशमलव संख्याओं के साथ हो सकती है जैसे कि उदाहरण में
Dim fMean as Double = 1.18
Dim fDelta as Double = 0.08
Dim fLimit as Double = 1.1
If fMean - fDelta < fLimit Then
bLower = True
Else
bLower = False
End If
प्रश्न: बेलर चर में कौन सा मान होता है?
उत्तर: एक 32 बिट मशीन पर चलने वाले में TRUE होता है !!!
यदि मैं दशमलव से डबल की जगह लेता हूं, तो bower में FALSE होता है जो कि अच्छा उत्तर है।
डबल में, समस्या यह है कि fMean-fDelta = 1.09999999999 जो कि 1.1 से कम है।
सावधानी: मुझे लगता है कि एक ही समस्या निश्चित रूप से अन्य संख्या के लिए मौजूद हो सकती है क्योंकि दशमलव उच्च परिशुद्धता के साथ केवल एक डबल है और सटीक में हमेशा एक सीमा होती है।
वास्तव में, डबल, फ्लोट और दशमलव COBOL में द्विआधारी दशमलव के अनुरूप हैं!
यह अफसोसजनक है कि COBOL में लागू अन्य संख्यात्मक प्रकार .Net में मौजूद नहीं हैं। उन लोगों के लिए जो COBOL नहीं जानते हैं, संख्यात्मक प्रकार के बाद COBOL में मौजूद हैं
BINARY or COMP like float or double or decimal
PACKED-DECIMAL or COMP-3 (2 digit in 1 byte)
ZONED-DECIMAL (1 digit in 1 byte)
सरल शब्दों में:
/==========================================================================================
Type Bits Have up to Approximate Range
/==========================================================================================
float 32 7 digits -3.4 × 10 ^ (38) to +3.4 × 10 ^ (38)
double 64 15-16 digits ±5.0 × 10 ^ (-324) to ±1.7 × 10 ^ (308)
decimal 128 28-29 significant digits ±7.9 x 10 ^ (28) or (1 to 10 ^ (28)
/==========================================================================================
आप यहां अधिक पढ़ सकते हैं , फ्लोट , डबल और दशमलव ।
Decimal
वित्तीय अनुप्रयोगों के लिए उपयुक्त है, और यह जब बीच तय उपयोग करने के लिए मुख्य कसौटी है Decimal
और Double
। यह दुर्लभ है कि Double
सटीक वैज्ञानिक अनुप्रयोगों के लिए पर्याप्त नहीं है, उदाहरण के लिए (और Decimal
अक्सर इसकी सीमित सीमा के कारण वैज्ञानिक अनुप्रयोगों के लिए अनुपयुक्त है )।
इनमें से प्रत्येक के बीच मुख्य अंतर सटीक है।
float
एक 32-bit
संख्या है, double
एक 64-bit
संख्या है और decimal
एक 128-bit
संख्या है।
दशमलव 128 बिट (28-29 महत्वपूर्ण अंक) वित्तीय अनुप्रयोगों के मामले में दशमलव प्रकार का उपयोग करना बेहतर है क्योंकि यह आपको उच्च स्तर की सटीकता देता है और गोलाई त्रुटियों से बचने में आसान है गैर-पूर्णांक गणित के लिए दशमलव का उपयोग करें जहां परिशुद्धता की आवश्यकता है (जैसे पैसा और मुद्रा)
डबल 64 बिट (15-16 अंक) डबल प्रकार संभवतः वास्तविक मूल्यों के लिए सबसे अधिक इस्तेमाल किया जाने वाला डेटा प्रकार है, पैसे को संभालने के अलावा। गैर-पूर्णांक गणित के लिए डबल का उपयोग करें जहां सबसे सटीक उत्तर आवश्यक नहीं है।
फ्लोट 32 बिट (7 अंक) इसका उपयोग ज्यादातर ग्राफिक पुस्तकालयों में किया जाता है क्योंकि प्रसंस्करण शक्तियों के लिए बहुत अधिक मांगें, ऐसी स्थितियों का भी उपयोग करती हैं जो गोलाकार त्रुटियों को सहन कर सकती हैं।
Decimals
एक की तुलना में बहुत धीमी है double/float
।
Decimals
और Floats/Doubles
एक डाली के बिना तुलना नहीं की जा सकती है जबकि Floats
और Doubles
कर सकते हैं।
Decimals
एन्कोडिंग या अनुगामी शून्य को भी अनुमति दें।
आपको निम्न मानों का उल्लेख करना चाहिए:
Decimal dec = 12M/6;
Double dbl = 11D/6;
float fl = 15F/6;
और परिणामों की जाँच करें।
Float - 4
Double - 8
Decimal - 12