تحويل رقم عشري إلى IEEE 754 مزدوج الدقة

هذا هو النوع الذي تستخدمه JavaScript وPython وExcel للأرقام، فترى هنا لماذا يعطي 0.1 + 0.2 ناتجا غير 0.3 بالضبط.

جارٍ تحميل الأداة…

المعالجة والخصوصية: تُحسب النتيجة داخل متصفحك ولا تُرسل بياناتك إلى أي خادم.

طريقة الاستخدام

  1. أدخل الرقم العشري.
  2. تظهر النتيجة فورًا وتتحدّث مع كل تعديل.
  3. انسخ النتيجة، أو انسخ رابطًا يحفظ القيم نفسها لمشاركتها.

طريقة الحساب

القيمة = (-1)^S × 1.F × 2^(E - 1023)، حيث S بت الإشارة و E أس من 11 بتا و F كسر من 52 بتا. نقرب إلى أقرب قيمة ممكنة، والتعادل إلى الزوجي.

مثال

المدخلات: الرقم العشري = 0.1. النتيجة: الترميز الست عشري HEX: 0x3FB999999999999A، نوع القيمة: رقم عادي (Normal).

0.1
0x3FB999999999999A

الحدود والملاحظات

  • يقبل Infinity و-Infinity وNaN، ويعطي NaN بالترميز القياسي 0x7FF8000000000000.
  • القيمة المخزنة للأرقام الصغيرة جدا قد تمتد مئات الخانات لأنها تكتب كاملة.

أسئلة شائعة عن هذه الأداة

ما ترميز 0.1 في double؟

0x3FB999999999999A، والقيمة المخزنة 0.1000000000000000055511151231257827021181583404541015625.

لماذا لا يساوي 0.1 + 0.2 القيمة 0.3؟

لأن الأرقام الثلاثة تخزن بقيم تقريبية، ومجموع تقريب 0.1 و0.2 يقع على double مختلف عن تقريب 0.3.

ما أكبر عدد صحيح يحفظه double بدقة؟

2⁵³ = 9007199254740992. بعده لا تمثل كل الأعداد الصحيحة، فيصبح 9007199254740993 مثلا 9007199254740992.