Math.trunc()

Функция Math.trunc() возвращает целую часть числа путём удаления всех дробных знаков.

 

Синтаксис

Math.trunc(x)

Параметры

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);
		
		// 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);
	};
}

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

Спецификация Статус Комментарий
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Math.trunc' в этой спецификации.
Стандарт Первое определение
ECMAScript Latest Draft (ECMA-262)
Определение 'Math.trunc' в этой спецификации.
Черновик  

Поддержка браузерами

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
truncChrome Полная поддержка 38Edge Полная поддержка 12Firefox Полная поддержка 25IE Нет поддержки НетOpera Полная поддержка 25Safari Полная поддержка 8WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаFirefox Android Полная поддержка 25Opera Android Полная поддержка ДаSafari iOS Полная поддержка 8Samsung Internet Android Полная поддержка Даnodejs Полная поддержка 0.12

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки

Смотрите также