1 00:00:00,000 --> 00:00:00,310 2 00:00:00,310 --> 00:00:01,750 >> डेविड मालन: चलो अब अपने दिमाग उड़ा दें. 3 00:00:01,750 --> 00:00:06,500 यह विभाजित असली दुनिया 1 में पता चला है 10 से 1/10, या 0.1 वास्तव में है. 4 00:00:06,500 --> 00:00:10,370 लेकिन कंप्यूटर में केवल एक परिमित है कि बिट्स की संख्या के साथ जो करने के लिए 5 00:00:10,370 --> 00:00:14,290 संख्या का प्रतिनिधित्व करते हैं, आप हमेशा नहीं कर सकते साथ 1/10 जैसे संख्या का प्रतिनिधित्व करते हैं 6 00:00:14,290 --> 00:00:15,500 सही सटीक. 7 00:00:15,500 --> 00:00:18,640 दूसरे शब्दों में, कंप्यूटर कभी कभी निर्णय कॉल और नहीं बनाने के लिए 8 00:00:18,640 --> 00:00:22,740 जरूरी संख्या आप का प्रतिनिधित्व के रूप में ठीक आप का इरादा के रूप में चाहते हैं. 9 00:00:22,740 --> 00:00:27,020 >> उदाहरण के लिए, मैं में वापस जाने के लिए लगता है इस कार्यक्रम के लिए और 0.1 बदलने, 10 00:00:27,020 --> 00:00:32,073 ओह, 0.28, जिससे यह दर्शाता है कि मैं करने के लिए printf के लिए printf चाहते हैं 11 00:00:32,073 --> 00:00:34,350 परिशुद्धता के 28 स्थानों पर. 12 00:00:34,350 --> 00:00:39,330 चलो अब बचाने के लिए और कार्यक्रम संकलन करते हैं, बनाने floats2 के साथ इस बार. 13 00:00:39,330 --> 00:00:41,910 डॉट स्लेश floats2 के साथ चला रहे हैं. 14 00:00:41,910 --> 00:00:49,980 और, प्रिय भगवान, मैं 0.1 नहीं देख इस समय, लेकिन सुंदर है जो 0.10000000, 15 00:00:49,980 --> 00:00:51,070 अच्छा अब तक. 16 00:00:51,070 --> 00:00:57,830 लेकिन फिर, 14901161193847656250. 17 00:00:57,830 --> 00:00:58,880 >> खैर, क्या चल रहा है? 18 00:00:58,880 --> 00:01:02,280 खैर, यह एक नाव है कि पता चला है आम तौर पर एक कंप्यूटर के अंदर संग्रहित 19 00:01:02,280 --> 00:01:03,500 32 बिट के साथ. 20 00:01:03,500 --> 00:01:07,340 32 स्पष्ट रूप से एक निश्चित संख्या है, जो आप ही प्रतिनिधित्व कर सकते हैं कि तात्पर्य 21 00:01:07,340 --> 00:01:11,050 32 बिट एक सीमित संख्या के साथ की बात मान चल. 22 00:01:11,050 --> 00:01:14,980 दुर्भाग्य से, इसका मतलब है कि कंप्यूटर सभी संभव का प्रतिनिधित्व नहीं कर सकते 23 00:01:14,980 --> 00:01:18,110 चल बिन्दु संख्या, या वास्तविक संख्या, दुनिया में मौजूद हैं, 24 00:01:18,110 --> 00:01:19,980 यह केवल इसलिए कई टुकड़े है क्योंकि. 25 00:01:19,980 --> 00:01:23,940 >> और तो कंप्यूटर जाहिरा तौर पर क्या है इस मामले में किया 1/10 के लिए प्रतिनिधित्व कर रहा है 26 00:01:23,940 --> 00:01:26,880 निकटतम संभव फ्लोटिंग बिंदु मान सकते हैं कि यह. 27 00:01:26,880 --> 00:01:31,050 लेकिन हमें देखो, हम यहाँ है, के रूप में 28 को दशमलव स्थानों, हम देखते हैं कि शुरू 28 00:01:31,050 --> 00:01:31,970 अस्पष्टता. 29 00:01:31,970 --> 00:01:34,480 तो इस के साथ एक समस्या है कोई सही समाधान. 30 00:01:34,480 --> 00:01:38,060 हम बजाय एक नाव के एक डबल का उपयोग कर सकते हैं के रूप में 64 बिट का उपयोग करने के लिए जाता है, जो 31 00:01:38,060 --> 00:01:39,410 32 के खिलाफ. 32 00:01:39,410 --> 00:01:42,290 लेकिन हां, 64, भी सीमित है इसलिए इस समस्या का होगा 33 00:01:42,290 --> 00:01:43,630 भी डबल्स के साथ रहते हैं. 34 00:01:43,630 --> 00:01:46,323