كيف هو نوع النقطة العائمة في JS؟
على سبيل المثال: var a = 0.69 ؛
أريد الحصول على 6.9 مباشرة لكتابة var c = a*10 ؛
تنبيه (ج) ؛
عند البحث عبر الإنترنت ، قال بعض مستخدمي الإنترنت أن هذا هو خطأ حساب JS عائم ، ووجد حلاً:
الطريقة 1: وظيفة JS المخصصة
نسخ رمز رمز على النحو التالي:
<script>
// إضافة طريقة للحصول على نتائج إضافية دقيقة
// الوصف: سيكون لنتائج JavaScript خطأ ، وسيكون أكثر وضوحًا عند إضافة أرقام نقطة العائمة. هذه الوظيفة تُرجع نتيجة أكثر دقة للإضافة.
// Call: Accidd (Arg1 ، Arg2)
// قيمة الإرجاع: Arg1 بالإضافة إلى النتائج الدقيقة لـ Arg2
وظيفة Acadd (Arg1 ، Arg2) {{
var R1 ، R2 ، M ؛
حاول {r1 = arg1.toString ().
حاول {r2 = arg2.toString ().
M = Math.Pow (10 ، Math.Max (R1 ، R2))))
العودة (Arg1*M+Arg2*M)/M.
}
// إضافة طريقة إضافة إلى نوع الرقم ، وهو أكثر ملاءمة للاتصال.
number.prototype.add = function (arg) {
Return Acadd (Arg ، this) ؛
}
// إضافة طريقة للحصول على نتائج إضافية دقيقة
// الوصف: سيكون لنتائج JavaScript خطأ ، وسيكون أكثر وضوحًا عند إضافة أرقام نقطة العائمة. هذه الوظيفة تُرجع نتيجة أكثر دقة للإضافة.
// Call: Accidd (Arg1 ، Arg2)
// قيمة الإرجاع: Arg1 بالإضافة إلى النتائج الدقيقة لـ Arg2
وظيفة accsub (arg1 ، arg2) {{
var r1 ، r2 ، m ، n ؛
حاول {r1 = arg1.toString ().
حاول {r2 = arg2.toString ().
M = Math.Pow (10 ، Math.Max (R1 ، R2)) ؛
// آخر تعديل بواسطة ديكا
// طول دقة التحكم الديناميكي
n = (r1> = r2)؟
العودة ((Arg1*M-Rg2*M)/M) .Tofixed (n) ؛
}
// باستثناء طريقة الحصول على الطريقة الدقيقة لإزالة الطريقة
// الوصف: سيكون لنتائج JavaScript خطأ ، وسيكون من الواضح عند إزالة أرقام نقطة العائمة. هذه الوظيفة تُرجع نتيجة إزالة أكثر دقة.
// call: accdiv (Arg1 ، Arg2)
// قيمة الإرجاع: Arg1 باستثناء النتائج الدقيقة لـ Arg2
وظيفة accdiv (arg1 ، arg2) {{
var t1 = 0 ، t2 = 0 ، r1 ، r2 ؛
حاول {t1 = arg1.toString ().
حاول {t2 = arg2.tostring ().
مع (الرياضيات) {
R1 = الرقم (Arg1.ToString (). استبدال ("." ، "")))
R2 = الرقم (Arg2.ToString (). استبدال ("." ، ""))
العودة (R1/R2)*POW (10 ، T2-T1) ؛
}
}
// إضافة طريقة div إلى نوع الرقم ، وهو أكثر ملاءمة للاتصال.
number.prototype.div = function (arg) {
إرجاع accdiv (هذا ، arg) ؛
}
// وظيفة الضرب للحصول على نتائج مضاعفة دقيقة
// الوصف: سيكون لنتائج نتائج تكاثر JavaScript خطأ ، وسيكون من الواضح عندما يتم ضرب أرقام النقطة العائمة. هذه الوظيفة تُرجع نتيجة تكاثر أكثر دقة.
// call: accmul (Arg1 ، Arg2)
// قيمة الإرجاع: يتم مضاعفة Arg1 بواسطة النتائج الدقيقة لـ Arg2
وظيفة accmul (Arg1 ، Arg2)
{{
varm m = 0 ، s1 = arg1.toString () ، s2 = arg2.toString () ؛
حاول {m+= s1.split (".") [1] .Length} catch (e) {}
حاول {m+= s2.split (".") [1] .Length} catch (e) {}
رقم الإرجاع (s1.replace (".
}
// أضف طريقة MUL إلى نوع الرقم ، وهو أكثر ملاءمة للاتصال.
number.prototype.mul = function (arg) {
إرجاع accmul (arg ، هذا) ؛
}
var a = 0.69 ؛
var b = 10 ؛
ALERT (A*B) ؛
تنبيه ((A*100)/10) ؛
</script>
فقط اتصل بالوظيفة مباشرة.
الطريقة 2: إذا كنت تعرف عدد الأرقام العشرية ، فيمكنك النظر في عدد أرقام النقطة العائمة إلى عدد صحيح (تقسم أخيرًا المتعددة المقابلة) ، ثم تنفيذ العملية.
تنبيه (11*22.9) ؛
تنبيه (11*(22.9*10)/10) ؛