Переклад не закінчено. Будь ласка, допоможіть перекласти цю статтю з англійської.

Функція Math.trunc() повертає цілу частину числа, повністю відкидаючи дробову.

Синтаксис

Math.trunc(x)

Аргументи

x
Число.

Результат

Ціла частина даного числа.

Опис

На відміну від трьох інших методів Math (Math.floor(), Math.ceil() та Math.round()), принцип роботи Math.trunc() дуже простий. Функція просто відкидає кому (крапку) та всі цифри правої частини, не зважаючи на те, являється аргумент додатнім, чи від'ємним.

Аргумент, поданий на вхід цієї функції, буде неявно приведений до чисельного типу.

У зв'язку з тим, що trunc() - це статичний метод Math, слід завжди викликати його як Math.trunc(), аніж як метод створеного вами об'єкту Math (оскільки Math не являється конструктором).

Приклади

Застосування Math.trunc()

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);
		
		// повертає:
		//  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);
	};
}

Специфікації

Специфікація Статус Примітка
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.trunc' in that specification.
Standard Первинне визначення.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Math.trunc' in that specification.
Draft  

Підтримка у браузерах

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support38 Yes25 No258
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes25 Yes8 Yes

Дивіться також

Мітки документа й учасники

Зробили внесок у цю сторінку: AdriandeCita
Востаннє оновлена: AdriandeCita,