لدى JavaScript شروط عشرية متعددة في تشغيل الضرب لأرقام نقطة العائمة.
وذلك لأن رقم النقطة العائمة يتم تحويله إلى ثنائي بعد العملية ، ولكن بعض العشرية لها تداول غير محدود بعد الترميز الثنائي ، والذي يسبب أخطاء في الحوسبة ، وهناك مشاكل مماثلة في لغة أخرى.
يشير التفسير إلى من Baidu إلى معرفة:
على سبيل المثال: 1038.1-1000
1038.1 = 10000001110.000110011001100110011001100110011001100 .....
1000 = 1111101000
1038.1 التحويل إلى ثنائية العشرية غير المحدودة. كرقم رقمي عشري محدد.
الحل: استنادًا إلى الأرقام العشرية (مثل 4) المراد الاحتفاظ بها ، اضرب أولاً (10^4) عند حساب المنتج ، ثم يقسم نتيجة الحساب (10^4) ، وأخيراً أخذ نتيجة الرياضيات القيمة. مستدير.
نسخ رمز رمز على النحو التالي:
var M1 = 2232.00 ،
في المئة = (10/100) ،
المجموع = في المئة*M1 ؛
التنبيه (المجموع) ؛ // 223.2000000000000002
المجموع = Math.round (المجموع*10)/10 ؛
تنبيه (المجموع) ؛ // 223.2