Math.trunc()‎

من موسوعة حسوب
مراجعة 15:40، 28 يناير 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

الدالة Math.trunc()‎ تعيد الجزء الصحيح من العدد بإزالة جميع الأرقام بعد الفاصلة العشرية.

البنية العامة

Math.trunc(x)

x

العدد التي ستُجرى عليه العملية.

القيمة المعادة

الجزء الصحيح من القيمة المعطاة.

الوصف

على النقيض من الدوال Math.floor()‎ و Math.ceil()‎ و Math.round()‎، طريقة عمل الدالة Math.trunc()‎ بسيطةٌ جدًا، فهي تقتطع (truncate) الفاصلة العشرية وما يليها من أرقام، بغض النظر عمّا إذا كان العدد موجبًا أم سالبًا.

سيحوّل الوسيط المُمرَّر إلى هذه الدالة إلى النوع Number ضمنيًا.

لمّا كانت الدالة trunc هي دالةٌ ساكنة (static method) تابعةٌ للكائن Math، فيجب عليك استخدامها دومًا بالشكل Math.trunc(x)‎، إذ لا تستطيع استخدامها كجزء من كائن Math خاص بك (تذكر أنَّ الكائن Math ليس له دالةٌ بانية).

أمثلة

أمثلة عن استخدام الدالة Math.trunc(x)‎:

Math.trunc(13.37);    // 13
Math.trunc(42.84);    // 42
Math.trunc(0.123);    //  0
Math.trunc(-0.123);   // -0
Math.trunc('-1.123'); // -1
Math.trunc(NaN);      // NaN
Math.trunc('foo');    // NaN
Math.trunc();         // NaN

تعويض نقص دعم المتصفحات

يمكن محاكاة هذه الدالة بالاستعانة بالدالة الآتية:

if (!Math.trunc) {
	Math.trunc = function(v) {
		v = +v;
		if (!isFinite(v)) return v;
		
		return (v - v % 1)   ||   (v < 0 ? -0 : v === 0 ? v : 0);
		
		// returns:
		//  0        ->  0
		// -0        -> -0
		//  0.2      ->  0
		// -0.2      -> -0
		//  0.7      ->  0
		// -0.7      -> -0
		//  Infinity ->  Infinity
		// -Infinity -> -Infinity
		//  NaN      ->  NaN
		//  null     ->  0
	};
}

نسخة مختصرة:

if (!Math.trunc) {
	Math.trunc = function(v) {
		v = +v;
		return (v - v % 1)   ||   (!isFinite(v) || v === 0 ? v : v < 0 ? -0 : 0);
	};
}

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي 38 25 غير مدعومة 25 8

على النقيض من متصفح IE، يدعم متصفح Edge هذه الميزة.

مصادر ومواصفات