>> DAVID مالان: بیایید به ضربه و ذهن شما.
به نظر می رسد در دنیای واقعی 1 تقسیم 10 در واقع 10/1 و یا 0.1.
اما در کامپیوتر است که تنها محدود داشته باشد تعداد بیت های که با آن به
نمایش اعداد، شما می توانید همیشه نمایش اعداد مثل 1/10 با
دقت کامل است.
به عبارت دیگر، رایانه گاهی اوقات برای برقراری تماس قضاوت و نه
لزوما نشان دهنده شماره شما می خواهم به عنوان عنوان دقیق شما قصد.
>> به عنوان مثال، فرض کنید که من به بازگشت به این برنامه و تغییر 0.1 به،
آه، 0.28، در نتیجه نشان می دهد که من می خواهم چون printf به چون printf به
28 مکان از دقت.
اکنون بیایید ذخیره و کامپایل برنامه، این بار با floats2 را.
اجرای آن را با floats2 بریده بریده نقطه.
و خدا عزیز، این بار من را ببینید .1 نیست، اما 0.10000000، که بسیار
خوب تا کنون.
اما پس از آن، 14901161193847656250.
>> خب، چه خبر است؟
خب، معلوم است که شناور است به طور معمول در داخل یک کامپیوتر ذخیره شده
با 32 بیت.
32 واضح است که یک تعداد متناهی، که بدین معنی است که شما فقط می توانید نمایندگی
با 32 بیت تعداد محدود شناور مقادیر نقطه.
متاسفانه، که بدان معنی است که کامپیوتر نمی تواند نشان دهنده همه امکان پذیر است
اعداد ممیز شناور، و یا اعداد حقیقی، که در جهان وجود دارد،
چون آن را تنها بسیاری از بیت.
>> و به این ترتیب آنچه که در کامپیوتر است ظاهرا انجام شده در این مورد نشان دهنده 1/10 به
شناور نزدیک امکان پذیر است مقدار نقطه است که آن را می توانید.
اما اگر ما نگاه کنید، که ما در اینجا داریم، به 28 رقم اعشار، ما شروع به دیدن که
عدم دقت.
بنابراین این یک مشکل با است هیچ راه حل کامل است.
ما می توانیم دو به جای یک شناور استفاده کنید، که تمایل به استفاده از 64 بیت به عنوان
مخالف 32.
اما البته، 64 نیز محدود است، بنابراین مشکل خواهد شد
حتی با دو برابر باقی می ماند.