parseFloat()
الدالة parseFloat()
تُفسِّر سلسلةً نصيةً مُمرَّرةً إليها كوسيط وتُعيد عددًا ذا فاصلة عشرية (عائمة).
البنية العامة
parseFloat(value)
value
القيمة التي ستُفسَّر.
القيمة المعادة
عدد ذو فاصلة عشرية ناتج عن تفسير السلسلة النصية المعطاة، وإذا لم يكن تحويل السلسلة النصية إلى رقم ممكنًا فستعاد القيمة NaN
.
الوصف
الدالة parseFloat
هي دالة غير مرتبطة بأيّ كائن، وتقبل وسيطًا هو سلسلة نصية، وتحاول تفسيره وتُعيد عددًا ذا فاصلة عشرية، وإذا واجهت الدالة محرفًا لا يُمثِّل إشارةً (+ أو -) أو عددًا (0-9) أو الأس (e
)، فستُعيد الدالة القيمة من بداية السلسلة النصية إلى تلك النقطة، وستتجاهل جميع المحارف بعدها، ويُسمَح بوجود فراغات قبل وبعد السلسلة النصية.
إذا كانت القيمة سلسلةً نصيةً ولا يمكن تحويل أوّل محرف فيها إلى رقم، فستُعيد الدالة parseFloat
القيمة NaN
.
القيمة NaN
لا تُمثِّل رقمًا في أي نظام عددي، فيمكنك استدعاء الدالة isNaN
لمعرفة إذا كان ناتج الدالة parseFloat
هو NaN
؛ تذكّر أنَّ قيم NaN
عند استخدامها في العمليات الرياضية ستؤدي إلى إعادة كاملة التعبير الرياضي القيمة NaN
.
يمكن للدالة parseFloat
تفسير وإعادة القيمة Infinity
، ويمكن استخدام الدالة isFinite
لمعرفة إذا كان الناتج عددًا محدودًا (finite number، أي ليس Infinity
أو -Infinity
أو NaN
).
وتستطيع الدالة parseFloat
تفسير كائن إذا كان يملك الدالة toString
أو valueOf
.
أمثلة
استخدام parseInt
جميع الأمثلة الآتية ستُعيد القيمة 3.14
:
parseFloat(3.14);
parseFloat('3.14');
parseFloat('314e-2');
parseFloat('0.0314E+2');
parseFloat('3.14more non-digit characters');
var foo = Object.create(null);
foo.toString = function () { return "3.14"; };
parseFloat(foo);
var foo = Object.create(null);
foo.valueOf = function () { return "3.14"; };
parseFloat(foo);
أما المثال الآتي فسيعيد القيمة NaN
:
parseFloat('FF2');
دالة تفسير تتبع قواعد أكثر صرامة
من المفيد أحيانًا وجود دالة تُفسِّر السلاسل النصية كأرقام لكن مع قواعد أكثر صرامةً، ويمكن أن تفيد التعابير النمطية (regular expressions) هنا:
var filterFloat = function(value) {
if (/^(\-|\+)?([0-9]+(\.[0-9]+)?|Infinity)$/
.test(value))
return Number(value);
return NaN;
}
console.log(filterFloat('421')); // 421
console.log(filterFloat('-421')); // -421
console.log(filterFloat('+421')); // 421
console.log(filterFloat('Infinity')); // Infinity
console.log(filterFloat('1.61803398875')); // 1.61803398875
console.log(filterFloat('421e+0')); // NaN
console.log(filterFloat('421hop')); // NaN
console.log(filterFloat('hop1.61803398875')); // NaN
لاحظ أنَّ الدالة التي عرّفناها في المثال السابق لا تقبل بعض الأرقام المكتوبة بصيغة صحيحة، مثل 1.
أو .5
.
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | نعم | نعم | نعم | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.
- معيار ECMAScript 1st Edition .