>> DAVID مالان: دعونا الآن ضربة عقلك.
اتضح في العالم الحقيقي 1 تقسيم بنسبة 10 هو في الواقع 1/10، أو 0.1.
ولكن في أجهزة الكمبيوتر التي تحتوي فقط محدود عدد البتات التي ل
تمثل الأرقام، لا يمكنك دائما تمثل الأرقام كما 1/10 مع
الدقة الكمال.
وبعبارة أخرى، في بعض الأحيان أجهزة الكمبيوتر لإجراء مكالمات الحكم وليس
تعبر بالضرورة عن الرقم الذي تريد بالدقة كنت تنوي.
>> على سبيل المثال، لنفترض أن أعود إلى هذا البرنامج وتغيير 0.1 إلى،
أوه، 0.28، مما يدل على أن أود printf لprintf ل
28 أماكن الدقة.
دعونا الآن حفظ وترجمة البرنامج، هذه المرة مع جعل floats2.
تشغيله مع نقطة مائلة floats2.
و، عزيزي الله، وهذه المرة لا أرى 0.1، ولكن 0.10000000، وهي جميلة
جيدة حتى الآن.
ولكن بعد ذلك، 14901161193847656250.
>> حسنا، ما الذي يحدث؟
كذلك، اتضح أن تعويم هو تخزين عادة من داخل الكمبيوتر
مع 32 بت.
32 ومن الواضح أن عدد محدود، والتي يعني أنك يمكن أن تمثل فقط
مع 32 بت عدد محدود القيم النقطة العائمة.
للأسف، وهذا يعني أن لا يمكن أن تمثل كل ما يمكن من الكمبيوتر
أرقام النقطة العائمة، أو أرقام حقيقية، الموجودة في العالم،
لأنه يحتوي على الكثير من بت فقط.
>> وذلك ما يبدو الكمبيوتر يتم في هذه الحالة تمثل 1/10 ل
والعائمة أقرب ممكن قيمة النقطة ما في وسعها.
ولكن إذا نظرنا، كما لدينا هنا، إلى 28 المنازل العشرية، ونحن نبدأ أن نرى أن
عدم الدقة.
لذلك هذا هو وجود مشكلة لا يوجد حل مثالي.
يمكننا استخدام مزدوج بدلا من تعويم، الذي يميل إلى استخدام 64 بت كما
مقابل 32.
ولكن بطبيعة الحال، هو أيضا محدود 64، لذلك فإن المشكلة
تبقى حتى مع الزوجي.