0.1 * 0.2;
> 0.020000000000000004
0.3 - 0.1
> 0.19999999999999998
ولأغراض عملية، لا يهم عدم الدقة هذا، ففي حالتنا نحن نتحدث عن خطأ في كوينتيليون جزء، ومع ذلك، فإن هذا قد يخيب البعض. يمكننا أيضًا الحصول على نتائج غريبة بعض الشيء عند العمل مع الأرقام التي تمثل العملات أو النسب المئوية أو أحجام الملفات. من أجل تصحيح هذه الأخطاء، نحتاج فقط إلى أن نكون قادرين على تقريب النتائج، ويكفي ضبط الدقة العشرية.
لتقريب الأرقام تطبيقات عملية، حيث يمكننا التعامل مع رقم ضمن نطاق معين، على سبيل المثال نريد تقريب قيمة إلى أقرب رقم صحيح بدلاً من العمل فقط مع الجزء العشري.
دع randNum = 6.25؛ Let rounded = randNum.toFixed(); // "6" console.log(randNum + rounded); > "6.256"
إذا كنت تريد أن تكون النتيجة نوع بيانات رقمي، فستحتاج إلى استخدام parseFloat:
دع randNum = 6.25؛ Let rounded = parseFloat(randNum.toFixed(1)); console.log(rounded); > 6.3
يرجى ملاحظة أنه يتم تقريب القيم 5 إلا في حالات نادرة.
تُعد التابعتان toFixed() وtoPrecision() مفيدة لأنهما لا تستطيعان قطع الجزء الكسري فحسب، بل تضيفان أيضًا منازل عشرية، وهو أمر مناسب عند التعامل مع العملة:
دع WHOLENUM = 1 Let DollarCents = fullNum.toFixed(2); console.log(dollarsCents); > "1.00"
لاحظ أن toPrecision سينتج النتيجة بالترميز العلمي إذا كان عدد الأعداد الصحيحة أكبر من الدقة نفسها:
دع الرقم = 123.435 num.toPrecision(2); > "1.2e+2"
دع numTest = 1.005؛ numTest.toFixed(2); > "1.00"
يجب أن تكون نتيجة الحساب أعلاه 1.01، وليس 1. إذا كنت ترغب في تجنب خطأ مماثل، يمكننا استخدام الحل الذي اقترحه جاك إل مور، والذي يستخدم الأرقام الأسية للحساب:
دالة مستديرة(قيمة، كسور عشرية) (إرجاع Number(Math.round(value+"e"+decimals)+"e-"+decimals);)
الآن:
جولة (1.005،2)؛ > 1.01
إذا كنت تريد حلاً أكثر قوة من الحل الموضح أعلاه، فيمكنك الانتقال إلى MDN.
0.1 + 0.2 === 0.3 > خطأ
نستخدم Math.EPSILON في وظيفتنا للحصول على مقارنة صحيحة:
الدالة epsEqu(x, y) ( إرجاع Math.abs(x - y)< Number.EPSILON * Math.max(Math.abs(x), Math.abs(y));
}
تأخذ الدالة وسيطتين: الأولى هي الحساب الحالي، والثانية هي النتيجة المتوقعة. تقوم بإرجاع المقارنة بين الاثنين:
EpsEqu(0.1 + 0.2, 0.3) > صحيح
تدعم جميع المتصفحات الحديثة بالفعل وظائف الرياضيات ES6، ولكن إذا كنت تريد الدعم في متصفحات مثل IE 11، فاستخدم polyfills.
الدالة مبتورة(num) (إرجاع Math.trunc(num * 100) / 100;) مبتورة(3.1416) > 3.14
إذا كنت تريد تكييف الطريقة مع أي عدد من المنازل العشرية، فيمكنك استخدام النفي المزدوج للبت:
تم اقتطاع الدالة (num، decimalPlaces) ( Let numPowerConverter = Math.pow(10, decimalPlaces); return ~~(num * numPowerConverter)/numPowerConverter; )
الآن:
دع randInt = 35.874993؛ اقتطاع(randInt,3); > 35.874
جولة الرياضيات (4.3) > 4 جولة الرياضيات (4.5) > 5
يرجى ملاحظة أن "نصف القيمة"، 0.5 يتم تقريبها وفقًا لقواعد الرياضيات.
Math.floor(42.23); > 42 Math.floor(36.93); > 36
يرجى ملاحظة أن التقريب للأسفل يعمل مع كافة الأرقام، بما في ذلك الأرقام السالبة. تخيل ناطحة سحاب بها عدد لا نهائي من الطوابق، بما في ذلك طوابق الطابق السفلي (تمثل أرقامًا سالبة). إذا كنت في المصعد في أدنى مستوى بين 2 و 3 (والذي يمثل قيمة -2.5)، فسوف يأخذك Math.floor إلى -3:
Math.floor(-2.5); > -3
ولكن إذا كنت تريد تجنب هذا الموقف، فاستخدم Math.trunc، المدعوم في جميع المتصفحات الحديثة (باستثناء IE/Edge):
Math.trunc(-41.43); > -41
ستجد في MDN ملف polyfill الذي سيوفر الدعم لـ Math.trunc في المتصفحات وIE/Edge.
Math.ceil(42.23); > 43 Math.ceil(36.93); > 37 Math.ceil(-36.93); > -36
الدالة roundTo5(num) (إرجاع Math.round(num/5)*5;)
الآن:
RoundTo5(11); > 10
إذا كنت تريد التقريب إلى مضاعفات القيمة الخاصة بك، فإننا نستخدم دالة أكثر عمومية، حيث نقوم بتمرير القيمة الأولية والمضاعف:
الدالة roundToMultiple(num, multiple) (إرجاع Math.round(num/multiple)*multiple;)
الآن:
دع الرقم الأولي = 11؛ دع المتعدد = 10؛ roundToMultiple(initialNumber, multiple); > 10؛
Let lowBound = 1; دع HighBound = 100؛ دع numInput = 123؛ دع فرضت = Math.max(lowBound, Math.min(numInput, HighBound)); console.log(clamped); > 100؛
مرة أخرى، يمكننا إعادة استخدام العملية ولف كل شيء في دالة، باستخدام الحل الذي اقترحه دانييل إكس مور:
Number.prototype.clamp = function(min, max) ( return Math.min(Math.max(this, min), max); );
الآن:
NumInput.clamp(lowBound, HighBound); > 100؛
الدالة gaussRound(num, decimalPlaces) ( Let d = decimalPlaces || 0, m = Math.pow(10, d), n = +(d ? num * m: num).toFixed(8), i = Math.floor (ن)، و = ن - أنا، ه = 1e-8، ص = (و > 0.5 - ه && f< 0.5 + e) ?
((i % 2 == 0) ? i: i + 1) : Math.round(n);
return d ? r / m: r;
}
الآن:
غاوس راوند (2.5) > 2 غاوس راوند (3.5) > 4 غاوس راوند (2.57،1) > 2.6
العلامة العشرية في CSS:
نظرًا لأن JavaScript يُستخدم غالبًا لإنشاء تعيينات موضعية لعناصر HTML، فقد تتساءل عما سيحدث إذا قمنا بإنشاء قيم عشرية لعناصرنا:
#box (العرض: 63.667731993 بكسل;)
والخبر السار هو أن المتصفحات الحديثة ستحترم القيم العشرية في نموذج الكتلة، بما في ذلك النسبة المئوية أو وحدات البكسل.
دع الفاكهة = ["قرع الجوز"، "مشمش"، "شمام"]؛ Fruit.sort(); > "مشمش"، "قرع الجوز"، "شمام"]
ومع ذلك، فإننا نواجه مشكلة بمجرد أن يكون أحد العناصر كبيرًا:
دع الفاكهة = ["قرع الجوز"، "المشمش"، "الشمام"]؛ Fruit.sort(); > "الشمام"، "المشمش"، "قرع الجوز"]
وذلك لأن أداة الفرز، بشكل افتراضي، تقوم بمقارنة الحرف الأول الممثل في Unicode. Unicode هو رمز فريد لأي شخصية، بغض النظر عن النظام الأساسي، بغض النظر عن البرنامج، بغض النظر عن اللغة. على سبيل المثال، إذا نظرت إلى جدول الرموز، فإن الحرف "a" له القيمة U+0061 (بالنظام الست عشري 0x61)، في حين أن الحرف "C" له الرمز U+0043 (0x43)، والذي يأتي سابقًا في Unicode الجدول من الحرف "أ".
لفرز مصفوفة قد تحتوي على أحرف أولى مختلطة، نحتاج إما إلى تحويل جميع العناصر مؤقتًا إلى أحرف صغيرة، أو تحديد ترتيب الفرز باستخدام الأسلوب localeCompare() مع بعض الوسائط. كقاعدة عامة، في مثل هذه الحالة، من الأفضل إنشاء وظيفة للاستخدام المتكرر على الفور:
الدالة alphaSort(arr) ( arr.sort(function (a, b) ( return a.localeCompare(b, "en", ("sensitivity": "base")); )); ) دع الفاكهة = ["قرع الجوز" "، "مشمش"، "شمام"]؛ ترتيب ألفا (الفاكهة)>
إذا كنت تريد ترتيب المصفوفة بترتيب أبجدي عكسي، فما عليك سوى تبديل موضعي a وb في الدالة:
الدالة alphaSort(arr) ( arr.sort(function (a, b) ( return b.localeCompare(a, "en", ("sensitivity": "base")); )); ) دع الفاكهة = ["قرع الجوز" "، "مشمش"، "شمام"]؛ alphaSort(فاكهة) > ["الشمام"، "قرع الجوز"، "المشمش"]
تجدر الإشارة هنا إلى أن localeCompare يُستخدم مع الوسائط، وعلينا أيضًا أن نتذكر أنه مدعوم من IE11+، بالنسبة للإصدارات الأقدم من IE، يمكننا استخدامه بدون وسائط، وبالأحرف الصغيرة:
الدالة caseSort(arr) ( arr.sort(function (a, b) ( return a.toLowerCase().localeCompare(b.toLowerCase()); )); ) Let Fruit = ["قرع الجوز"، "المشمش"، "الشمام"]؛ caseSort(fruit) > ["مشمش"، "قرع الجوز"، "شمام"]
دع أعلى الدرجات = ; HighScores.sort(); >
الأمر هو أن طريقة الترتيب () تقوم بإجراء مقارنة معجمية: مما يعني أنه سيتم تحويل الأرقام إلى سلسلة وسيتم إجراء المقارنات مرة أخرى عن طريق مطابقة الحرف الأول من تلك السلسلة بترتيب الأحرف في جدول Unicode . ولذلك، نحن بحاجة مرة أخرى إلى تحديد ترتيب الفرز لدينا:
دع أعلى الدرجات = ; HighScores.sort(function(a,b) ( return a - b; )); >
مرة أخرى، لفرز الأرقام بترتيب عكسي، قم بتبديل موضعي a وb في الدالة.
دع الدرجات = [ ( "الاسم": "دانيال"، "النتيجة": 21768)، ( "الاسم": "مايكل"، "النتيجة": 33579)، ( "الاسم": "أليسون"، "النتيجة": 38395 )];
في ES6+، يمكنك استخدام وظائف الأسهم:
Scores.sort((a, b) => b.score - a.score));
بالنسبة للمتصفحات الأقدم التي لا تتمتع بهذا الدعم:
Scores.sort(function(a, b) ( return a.score - b.score ));
كما ترون، يعد الفرز في JavaScript أمرًا غامضًا إلى حد ما، وآمل أن تجعل هذه الأمثلة الحياة أسهل بطريقة ما.
في JavaScript، يتم تمثيل دالة الطاقة كـ Math.pow()، وفي معيار ES7 الجديد، تم تقديم عامل أسي جديد - " * * ".
Math.pow(3,2) > 9
هذا الشكل من الترميز يعني 3 تربيع، أو 3 × 3، مما يؤدي إلى النتيجة 9. ويمكن إعطاء مثال آخر بالطبع:
Math.pow(5,3); > 125
أي أن 5 مكعبًا، أو 5 × 5 × 5، يساوي 125.
ECMAScript 7 هو الإصدار التالي من JavaScript، من حيث المبدأ، يمكننا استخدام عامل الأس الجديد المقترح - * *، قد يكون هذا الشكل من التدوين أكثر وصفيًا:
3 ** 2
> 9
في الوقت الحالي، دعم هذا المشغل محدود للغاية، لذلك لا ينصح باستخدامه.
يمكن أن تكون وظيفة الطاقة مفيدة في مجموعة متنوعة من المواقف. مثال بسيط لحساب عدد الثواني في الساعة: Math.pow (60,2).
الرياضيات.sqrt(9) > 3
وفي الوقت نفسه، الجذر التكعيبي لـ a هو الرقم الذي يعطي s عند رفعه إلى مكعب.
الرياضيات.cbrt(125) > 5
تم إدخال Math.cbrt() مؤخرًا في مواصفات JavaScript، وبالتالي فهو مدعوم فقط في المتصفحات الحديثة: Chrome 38+ وFirefox وOpera 25+ وSafari 7.1+. ستلاحظ أن Internet Explorer غير موجود في هذه القائمة، ولكنك ستجد ملف polyfill على MDN.
Math.pow(1.25, 2); > 1.5625 Math.cbrt(56.57) > 3.8387991760286138
يرجى ملاحظة أن هذا يعمل جيدًا أيضًا عند استخدام قيم الوسائط السالبة:
Math.pow(-5,2) > 25 Math.pow(10,-2) > 0.01
ومع ذلك، لن ينجح هذا مع الجذر التربيعي:
Math.sqrt(-9) > NaN
نعلم من التحليل الرياضي أن الرقم التخيلي يشير إلى الجذور التربيعية للأعداد السالبة. وهذا قد يقودنا إلى أسلوب آخر للتعامل مع الأعداد المركبة، لكن تلك قصة أخرى.
يمكنك استخدام الكسور في Math.pow() للعثور على الجذور التربيعية والتكعيبية للأرقام. يستخدم الجذر التربيعي الأس 0.5:
Math.pow(5, 0.5); // = Math.sqrt(5) = 5 ** (1/2) > 2.23606797749979
ومع ذلك، نظرًا لتقلبات النقطة العائمة، لا يمكنك تخمين النتيجة الصحيحة تمامًا:
Math.pow(2.23606797749979,2) > 5.000000000000001
في مثل هذه الحالات، سيتعين عليك اللجوء إلى قطع العلامات من الرقم أو التقريب إلى بعض القيمة.
يخلط بعض الأشخاص، لأسباب غير معروفة، في JavaScript بين الدالة Math.pow() وMath.exp()، وهي الدالة الأسية للأرقام بشكل عام. ملاحظة: في اللغة الإنجليزية، يتم ترجمة كلمة "الأس" على أنها "الأس"، لذلك من المرجح أن ينطبق هذا على المتحدثين باللغة الإنجليزية، على الرغم من وجود أسماء بديلة للأس، مثل الفهرس، والقوة.
يمكن للمستخدمين المسجلين فقط المشاركة في الاستطلاع. ادخل من فضلك.
العلامات:غالبًا ما تكون نتيجة العمليات الحسابية رقمًا يحتوي على عدد كبير من المنازل العشرية. إذا تم استخدام هذا الرقم لمزيد من الحسابات، فيمكن تركه كما هو. لكن في بعض الأحيان يلزم تقريب الرقم، على سبيل المثال لعرضه على الصفحة. تقوم JavaScript بتقريب الأرقام باستخدام عدة طرق.
يقوم الأسلوب Math.round() بتقريب القيمة إلى عدد صحيح.
جولة الرياضيات (الرقم)
يتم تقريب الأرقام وفقًا للقواعد الرياضية. وهذا هو، إذا كان هناك رقم من 0 إلى 4 بعد العلامة العشرية، فسيتم تجاهل الجزء الكسري ببساطة. وإذا كان بعد العلامة العشرية رقم من 5 إلى 9، فسيتم تجاهل الجزء الكسري، ويضاف واحد إلى الجزء بأكمله. مثال:
جافا سكريبت:
هناك طريقتان أخريان لتقريب رقم إلى رقم صحيح. يقوم التابع Math.floor() بالتقريب للأسفل. يتجاهل الجزء الكسري من الرقم. ويتم تقريب طريقة Math.ceil() إلى الأعلى. فهو يتجاهل الجزء الكسري ويضيف واحدًا إلى الجزء بأكمله. مثال:
بالطبع، 5 - (-2) يساوي 5+2. لا تنس أنك لن تحصل على الرقم 5 في هذه الصيغة. الحد الأقصى سيكون 4.999999999. يمكن تقريب القيم الناتجة إلى الدقة المطلوبة.
إذا كانت هناك حاجة إلى أرقام صحيحة فقط، فيمكن تقريب القيم الناتجة إلى أقرب رقم صحيح. يجب إضافة واحد إلى الحد الأقصى حتى يكون هذا الحد الأقصى ممكنًا أيضًا. تبدو الصيغة كما يلي:
عدد صحيح = Math.floor(min + Math.random() * (max + 1 - min)
دعونا نطبع الأرقام من 10 إلى 15:
20 |
ل (ط = 1؛ ط<=10; i++) { rand = Math.floor(10 + Math.random() * (15 + 1 - 10)); console.log(rand); } |
تتمتع الحسابات الرياضية بخصوصية واحدة، وهي أن نتائجها ليست دائمًا دقيقة تمامًا. هذه مشكلة ليس فقط مع جافا سكريبت، ولكن أيضًا مع معظم لغات البرمجة. يحدث هذا لأنه يتم تحويل الأرقام والبيانات الأخرى إلى كود ثنائي، وعندها فقط يتم إجراء الحسابات باستخدامها. في معظم الحالات، لا يؤدي هذا إلى أي صعوبات خاصة؛ تؤدي الحسابات ببساطة في بعض الأحيان إلى رقم يحتوي على عدد كبير من المنازل العشرية. ولكن هناك موقف يؤثر فيه عدم دقة الحساب على تشغيل البرنامج. هذه مقارنة بين الأرقام. إذا تمت مقارنة أرقام مختلفة، فيجب أن يكون كل شيء على ما يرام.
5.1 < 5.2
ولكن إذا أسفر الحساب عن رقمين كسريين متطابقين، فإن نتيجة المقارنة بينهما لا يمكن التنبؤ بها. يمكن أن يكونوا متساوين، أو يمكن أن يكون أحدهم أكبر من الآخر. عندما يستخدم البرنامج النصي مثل هذه المقارنة، تحتاج إلى التحقق مما إذا كان البرنامج النصي يعمل بشكل صحيح. إذا كان هناك خطأ فيه، فأنت بحاجة إلى تقريب القيم التي تتم مقارنتها.
هناك عدد لا بأس به من الطرق لإجراء العمليات الحسابية المختلفة. فهي بسيطة ولا تحتاج إلى شرح إضافي. يتم سرد الطرق المستخدمة غالبًا في الجدول التالي:
حاول إجراء بعض الحسابات باستخدام هذه الطرق.
مرحبًا عشاق جافا سكريبت. لقد لاحظت بالفعل أن هذه اللغة غير عادية للغاية وتتميز في كل قسم بميزاتها وحلولها التقنية غير العادية. لذلك، تم تخصيص منشور اليوم لموضوع: "تقريب جافا سكريبت".
بعد قراءة المقالة الحالية، سوف تتعلم لماذا من الضروري تقريب الأرقام، وما هي الأساليب والخصائص في JS التي تؤدي هذه الوظيفة، وكذلك ما يميز القسمة على 0. وبدون تغيير مبادئي، سأرفق أمثلة على النقاط الرئيسية في المواد ووصف كل إجراء بالتفصيل. الآن دعونا نبدأ التعلم!
أولاً، تذكر أنه في JS، تنتمي جميع أنواع الأرقام (الكسور والأعداد الصحيحة) إلى النوع رقم. بالإضافة إلى ذلك، فهي جميعها 64 بت، حيث يتم تخزينها بتنسيق "الدقة المزدوجة"، المعروف أيضًا باسم معيار IEEE-754.
يتم إنشاء المتغيرات الرقمية بالطريقة المعتادة:
فار خدر = 35؛ // عدد طبيعي
فار دروب = 0.93؛ // التمثيل العشري
فار numb16 = 0xFF; // نظام الأرقام السداسية العشرية
يدعم التمثيلات الرقمية الأخرى. لذلك، يمكنك أيضًا إنشاء أرقام الفاصلة العائمة (وتسمى أحيانًا "الأرقام العلمية").
يوجد الآن دعم لطريقة مثيرة جدًا للاهتمام toLocaleString()، الذي يقوم بتنسيق جميع المعلمات الرقمية وفقًا للمواصفات المنصوص عليها في ECMA 402. وبفضل هذا، يتم عرض الأرقام الكبيرة وأرقام الهواتف والعملات وحتى النسب المئوية بشكل جميل في مربع الحوار.
فار نوم = 714000.80;
تنبيه (num.toLocaleString ())؛
للعمل مع عناصر من النوع الرقمي، تم تزويد كائن عالمي كامل بمجموعة من الوظائف الرياضية المختلفة، واسمها الرياضيات.
بالإضافة إلى ذلك، هناك طرق أخرى لتقريب القيم الرقمية إلى أرقام صحيحة، وأعشار، ومئات، وما إلى ذلك. دعونا ننظر إليهم جميعا بمزيد من التفصيل.
يتضمن كائن الرياضيات العالمي مجموعة كبيرة ومتنوعة من الوظائف الرياضية والمثلثية. يعد هذا كائنًا ضروريًا للغاية وغالبًا ما يساعد المطورين عند العمل مع البيانات الرقمية.
هناك نظائرها للرياضيات على منصات أخرى. على سبيل المثال، في اللغات الشائعة مثل Java وC#، تعد Math فئة تدعم جميع الوظائف القياسية نفسها. لذا، كما ترون، هذه الأداة رائعة وقوية حقًا.
الآن أريد أن أستعرض الطرق المحددة المسؤولة عن التقريب وأتحدث عنها بالتفصيل.
سأبدأ مع الرياضيات.أرضية. انتبه إلى اسم الطريقة. منطقيا، يصبح من الواضح أنه بما أننا نتحدث عن التقريب، والترجمة الحرفية لكلمة "الأرضية" تعني "الأرضية"، فإن هذه الأداة ستقوم بتقريب القيم المعالجة إلى الأسفل.
ومن الممكن أيضًا أن يظل الرقم الذي تمت معالجته باستخدام هذه الوظيفة كما هو. وذلك لأن التقريب يتم وفقًا لمتباينة غير صارمة (<=). Таким образом, при отработке этой строчки кода:
تنبيه(Math.floor(4.5));
الجواب سيكون رقم 4
انظر مرة أخرى إلى الاسم (بهذه الطريقة يتم امتصاص المادة بشكل أسرع). إذا كان أي شخص لا يعرف، "السقف" تعني "السقف". وهذا يعني أنه سيتم تقريب البيانات الرقمية باستخدام متباينة غير صارمة (>=).
تنبيه(Math.ceil(4.5));
كما كنت قد خمنت، فإن الجواب سيكون الرقم 5.
تقوم هذه الطريقة بتقريب الكسر إلى أقرب رقم صحيح. لذلك، إذا كان الجزء الكسري يقع في النطاق من 0 إلى 0.5 غير شامل، فسيتم التقريب إلى قيمة أصغر. وإذا كان الجزء الكسري يقع في النطاق من 0.5 إلى الرقم الصحيح التالي، فسيتم تقريبه إلى رقم صحيح أكبر.
تنبيه(Math.round(4.5));
أتمنى أن الجميع فكر أو قال أن الإجابة الصحيحة هي 5.
لدى JavaScript أيضًا طريقتان أخريان تتعاملان مع تقريب التمثيلات الرقمية. ومع ذلك، فهي مختلفة بعض الشيء.
سنتحدث عن أدوات مثل للتصليح()و إلى الدقة (). إنهم مسؤولون ليس فقط عن التقريب، ولكن أيضًا عن دقته بالنسبة لأحرف معينة. دعونا نحفر أعمق.
باستخدام هذه الآلية، يمكنك تحديد عدد المنازل العشرية التي يجب تقريب القيمة إليها. تقوم الطريقة بإرجاع النتيجة كسلسلة. لقد أرفقت أدناه خيارًا بثلاثة خيارات مختلفة. تحليل الردود الواردة.
فار نوم = 5656.9393؛
document.writeln(num.toFixed()); // 5657
document.writeln(num.toFixed(2)); // 5656.94
document.writeln(num.toFixed(7)); // 5656.9393000
كما ترون، إذا لم تحدد وسيطة، فسيتم تقريب toFixed ()) القيمة الكسرية على العمومأعداد. يتم تقريب السطر الثالث ما يصل إلى حرفين،وفي الرابع، بسبب المعلمة "7"، تمت إضافة ثلاثة أصفار أخرى.
تعمل هذه الطريقة بشكل مختلف قليلاً. بدلاً من الوسيطة، يمكنك إما ترك مساحة فارغة أو تعيين معلمة. ومع ذلك، سيقوم الأخير بتقريب الأرقام إلى العدد المحدد من الأرقام، بغض النظر عن الفاصلة. فيما يلي النتائج التي ينتجها البرنامج، معاد كتابتها من المثال السابق:
فار نوم = 5656.9393؛
document.writeln(num.toPrecision()); // 5656.9393
document.writeln(num.toPrecision(2)); // 5.7e+3
document.writeln(num.toPrecision(7)); // 5656.939
كما تعلم من دروس الرياضيات، لا يمكنك القسمة على صفر. تم أخذ هذه القاعدة كأساس من قبل معظم منشئي لغات البرمجة. لذلك، عند القسمة على الصفر، تولد كافة البرامج خطأ.
ومع ذلك، جافا سكريبت تتفوق هنا أيضا. لذلك، أثناء تنفيذ مثل هذه العملية، لا تظهر أي رسائل خطأ... لأن مثل هذه العملية تعود "ما لا نهاية"!
لماذا هو كذلك؟ وكما هو معروف من نفس العلوم الرياضية، كلما صغر المقسوم عليه، كان الناتج أكبر. ولهذا السبب قرر مبتكرو هذه اللغة الموجهة نحو النماذج الأولية التخلي عن القوالب والسير في طريقهم الخاص.
بالنسبة لأولئك الذين يواجهون قيمة Infinity لأول مرة، قمت بشرح ميزاتها أدناه.
اللانهاية - تعني اللانهاية وتتوافق تمامًا مع العلامة الرياضية ∞.
قد تكون سلبية. يتم أيضًا الحفاظ على جميع القواعد القياسية للعمل مع العوامل الحسابية.
تنبيه(12/0); // ما لا نهاية
تنبيه(12.34/0); // ما لا نهاية
تنبيه (-3/ 0)؛ // -ما لا نهاية
أعتقد أنني سأنتهي هنا. إذا أعجبك المنشور، تأكد من الاشتراك في مدونتي. لا تكن جشعًا بروابط المقالات المثيرة للاهتمام وشاركها مع أصدقائك. وداعا وداعا!
مع أطيب التحيات، رومان تشيشوف
يقرأ: 194 مرة