1 00:00:00,000 --> 00:00:00,310 2 00:00:00,310 --> 00:00:01,750 >> DAVID مالان: بیایید به ضربه و ذهن شما. 3 00:00:01,750 --> 00:00:06,500 به نظر می رسد در دنیای واقعی 1 تقسیم 10 در واقع 10/1 و یا 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 و خدا عزیز، این بار من را ببینید .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