تحويل رقم عشري إلى IEEE 754 مزدوج الدقة
هذا هو النوع الذي تستخدمه JavaScript وPython وExcel للأرقام، فترى هنا لماذا يعطي 0.1 + 0.2 ناتجا غير 0.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.
