--- title: Math.trunc() slug: Web/JavaScript/Reference/Global_Objects/Math/trunc tags: - ECMAScript6 - Experimental - JavaScript - Math - Method - Reference - Функция - целая часть translation_of: Web/JavaScript/Reference/Global_Objects/Math/trunc ---
Функция Math.trunc()
возвращает целую часть числа путём удаления всех дробных знаков.
Math.trunc(x)
x
x
В отличие от других трёх методов объекта Math
— {{jsxref("Math.floor()")}}, {{jsxref("Math.ceil()")}} и {{jsxref("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); }; }
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('ES2015', '#sec-math.trunc', 'Math.trunc')}} | {{Spec2('ES2015')}} | Первое определение |
{{SpecName('ESDraft', '#sec-math.trunc', 'Math.trunc')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.Math.trunc")}}