أولا اكتب عرضًا تجريبيًا لإعادة إنتاج المشكلة. أنا أستخدم بيئة اختبار JS عبر الإنترنت [Open]
أعد كتابة وظيفة DisplayNum ()
دالة DisplayNum () {var num = 22.77 ؛ ALERT (num + 10) ؛}النقر فوق نتائج زر العرض إظهار 32.7699999999996 N الظهور العشري.
لن تحتوي جميع الأرقام على هذه الظاهرة ، باستثناء 22.99 2.777 ، يبدو أن هذه الأرقام ليست خاصة.
راجعت بعض المعلومات. أحدهما هو الخطأ في حساب JS العائم ، والآخر يرتبط بالتحويل النهائي للكمبيوتر إلى حساب ثنائي. ومع ذلك ، لماذا ليس كل العشرية لديها هذه الظاهرة؟ لا أعرف في الوقت الحالي. سأذهب أعمق إذا كان لدي وقت.
هناك حلان الآن. الأول هو استخدام طريقة JS .Tofixed (n) للحصول على عشرية من الرقم العشري. أنا شخصياً أعتقد أن هذه الطريقة ستواجه بعض المشكلات في دقة البيانات. إذا لم تكن متطلبات دقة البيانات عالية ، فيمكنك استخدامها. الطريقة الثانية هي كتابة طريقة تشغيل JS الخاصة بك.
فيما يلي وظيفة إضافة مخصصة. إضافة هذه الطريقة سوف تجنب المشاكل أعلاه.
الوظيفة addNum (num1 ، num2) {var sq1 ، sq2 ، m ؛ try {sq1 = num1.toString (). split (".". catch (e) {sq2 = 0 ؛} m = math.pow (10 ، math.max (sq1 ، sq2)) ؛ return (num1 * m + num2 * m) / m ؛}بالطبع ، يمكن أيضًا كتابته كخربة ((num * 3+10 * 3) /3) ؛ بهذه الطريقة ، لن يكون هناك مزيد من الكسور في n.
تنبيه ((num * 3+10 * 3) /3) ؛ وتنبيه (num+10) ؛ تختلف عن التنبيه (num+10) ؛ هاتان الطريقتان لكتابة أجهزة الكمبيوتر للتحويل إلى العمليات الثنائية في الطبقة السفلية. ربما هذا هو السبب في المشاكل المذكورة أعلاه.
المقالة أعلاه على JS العشرية حساب النقطة العشرية وعرض العديد من العشرية هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.