لا يمكن تمثيل القيمة 22.8 في نقطة عائمة ثنائية بالضبط. ما تراه هو تمثيل يعتمد على تنسيق العرض. قد تستخدم طرق العرض المختلفة تنسيقات العرض المختلفة. إن عرض عدد مختلف من الأرقام والتقريب يعني أن كلا من 22.8 و 22.7999990 صحيحة لعدد الأرقام المعروضة بعد التقريب. لاحظ أنه تم عرض 22.7999999 وليس 22.8000000 لأن الرقم التالي كان 2 لذلك تم تقريب القيمة المعروضة.
هذا يعتمد على القاعدة ، وهذا هو الأشياء التي يمكن أن تكون دقيقة في قاعدة واحدة قد لا تكون قادرة على الدقة في قاعدة أرقام مختلفة. في هذه الحالة ، لا يمكن أن يكون 22.8 في قاعدة الأرقام العشرية دقيقة في قاعدة الأرقام الثنائية.
هذا هو السبب في وجود NSDecimal والسبب في عدم استخدام النقطة العائمة للقيم النقدية.
هذا يعادل إلى حد ما عرض قيمة PI في القاعدة العشرية ، وعدد الأرقام غير محدود ، لذلك لكل عرض قرر شخص ما عدد الأرقام التي يجب عرضها. ومن المثير للاهتمام ، يمكن تمثيل PI بالضبط (ولكن بشكل مفيد) في قاعدة أرقام PI. :-)
في حالة ما اذا float
و double
هناك عدد محدود من الأرقام التي يمكن تمثيلها.