#статьи
Подробно о методах округления в JavaScript: в меньшую и большую сторону, до целого, до сотых.
Иллюстрация: Polina Vari для Skillbox Media
Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.
Округление чисел — одна из базовых операций в программировании. Казалось бы, округлить число несложно. Но на практике возникает много вопросов: какой метод использовать, как работают отрицательные числа, как избежать ошибок при округлении до нужного знака после запятой.
Содержание
В JavaScript для округления используется объект Math, в частности его методы Math.floor, Math.ceil, Math.round и Math.trunc.
Кроме этих, объект Math содержит и другие полезные методы, которые часто используются вместе с округлением: Math.abs(x) возвращает модуль числа, Math.random() — случайное число от 0 до 1, Math.pow(x, y) возводит число x в степень y, Math.sqrt(x) возвращает квадратный корень из числа. О них и о других методах вы можете почитать в документации.
В этой статье мы разберём, как устроено округление в JavaScript, какие в нём есть тонкости и как применять эти знания на практике.
Но сначала немного поговорим о числах в JavaScript.
В JavaScript есть два типа чисел. Основной тип — это обычные целые и дробные числа. Они работают в диапазоне примерно от −9 квадриллионов до 9 квадриллионов (точнее — от −(2⁵³ − 1) до 2⁵³ − 1. Такие числа имеют тип number.
let a = 5; // Это number
let b = 3.14; // Тоже number
let c = -100; // И это number
JavaScript использует для хранения таких чисел стандарт, который называется «числа с плавающей точкой двойной точности». Основной смысл в том, что числа хранятся в двоичной системе. Всё в порядке, пока речь идёт о целых числах, но некоторые десятичные дроби невозможно точно записать в двоичном виде — как в десятичной системе невозможно точно записать 1/3 (она превращается в 0,333...).
Поэтому иногда при операциях возникают странности:
0.1 + 0.2 // Результат: 0.30000000000000004
Это не ошибка в JavaScript — так работает хранение чисел в любом языке программирования, который использует этот формат. Чтобы избежать ошибок, приходится округлять результат:
Math.round((0.1 + 0.2) * 100) / 100 // 0.3
Сначала умножаем сумму на 100, чтобы избавиться от запятой, потом округляем и делим обратно.
Второй тип чисел встречается очень редко — это очень большие или очень маленькие числа, выходящие за пределы диапазона обычных чисел (больше чем 2⁵³ − 1 или меньше чем −(2⁵³ − 1)). Этот формат называется BigInt. Такие числа не могут быть дробными, только целыми. Выглядит он вот так:
let big = 1234567890123456789012345678901234567890n;
Обратите внимание: в конце числа стоит буква n. Так JavaScript понимает, что это число типа BigInt.
На практике BigInt нужен редко — в основном он применяется в криптографии. В этой статье мы на нём останавливаться не будем, а поговорим об округлении.
Math — это встроенный объект, который помогает работать с числами. Он умеет округлять числа, находить корень, получать случайные значения и многое другое.
В отличие от других объектов в JavaScript, нельзя использовать Math как функцию или создавать из него копии. Например, вы не можете написать new Math() — это вызовет ошибку.
С объектом Math можно работать только с помощью его свойств и методов — то есть уже готовых команд. Вот как это выглядит:
Math.round(1.7); // Округляет до ближайшего целого: 2
Math.random(); // Возвращает случайное число от 0 до 1, например 0.42
Math.PI; // Возвращает число π (пи): 3.141592653589793
В этой статье мы говорим только об умении Math округлять числа.
Метод Math.floor() округляет число вниз — до ближайшего целого меньшего или равного значению. Он просто отбрасывает дробную часть и не прибавляет единицу, даже если число близко к следующему целому.
Math.floor(4.9); // 4
Math.floor(4.1); // 4
Если число отрицательное, Math.floor() всё равно округляет вниз — то есть к меньшему числу:
Math.floor(-4.1); // -5
Math.floor(-4.9); // -5
Этот метод используют при расчёте количества страниц или порций — когда дробные части недопустимы.
Допустим, у вас 23 комментария, и на одной странице помещается 5. Сколько полных страниц вы можете отобразить?
let comments = 23;
let perPage = 5;
let pages = Math.floor(comments / perPage); // 4
Ответ — 4 страницы. На пятой осталось бы только 3 комментария, а метод Math.floor() вернёт именно количество полностью заполненных страниц.
Округляет аргумент в сторону увеличения до ближайшего целого:
Math.ceil(4.1); // 5
Math.ceil(-4.1); // -4
Отрицательное число тоже округляется к большему значению — в сторону нуля.
У вас 103 записи, и вы хотите выводить по 20 на страницу. Сколько страниц нужно, чтобы вместить всё.
let totalItems = 103;
let perPage = 20;
let totalPages = Math.ceil(totalItems / perPage); // 6
Для размещения 103 записей понадобится 6 страниц.
Метод Math.round() округляет число по привычным школьным правилам:
- Если дробная часть меньше 0,5, округляется в меньшую сторону.
- Если 0,5 и больше — округляется в большую сторону.
Math.round(4.4); // 4
Math.round(4.5); // 5
Math.round(-4.5); // -4
Math.round(-4.6); // -5
При положительных числах всё довольно ожидаемо. А при отрицательных Math.round() округляет в сторону нуля, если дробная часть равна 0,5.
Допустим, видео длится 95 секунд. Посчитаем, сколько это в минутах:
let seconds = 95;
let minutes = Math.round(seconds / 60); // 2
Результат — 2 минуты. Метод округлил 1,58 до ближайшего целого. Если бы видео длилось 89 секунд, получилась бы минута.
Метод Math.trunc() не округляет число, а просто убирает всё, что стоит после запятой. Он оставляет только целую часть — независимо от того, положительное число или отрицательное.
Math.trunc(4.9); // 4
Math.trunc(-4.9); // -4
Пользователь мышкой рисует прямоугольник, координаты получаются дробными, но при отрисовке прямоугольника нужны целые числа.
let x = 99.999;
let y = 200.47;
ctx.fillRect(Math.trunc(x), Math.trunc(y), 10, 10);
// Прямоугольник рисуется в точке (99, 200)
Мы используем Math.trunc(), потому что в нашей программе координаты округляются только вниз.
Допустим, программа вычисляет скидку −12,95. Для журнала аудита нужно сохранить только целую часть — без копеек.
let discount = -12.95;
let intPart = Math.trunc(discount); // -12
Так мы избавляемся от дробной части без округления и сохраняем грубое значение.
Методы Math.round(), Math.floor(), Math.ceil() и Math.trunc() обычно работают с числами. Но JavaScript устроен гибко — если вы случайно (или специально) передаёте в них значение другого типа, движок попытается превратить его в число. Иногда это работает, иногда — нет. Если Math не сможет привести аргумент к числу, он возвращает NaN.
NaN (сокращение от Not-a-Number) — это специальное значение в JavaScript, которое означает «не число». Оно появляется, когда операция с числами не может дать корректный результат, например:
0 / 0 // NaN — деление ноля на ноль
Math.sqrt(-1) // NaN — нельзя извлечь корень из отрицательного числа
parseInt("abc") // NaN — строка не может быть преобразована в число
Давайте посмотрим, как ведут себя разные типы значений.
console.log(Math.ceil("abc")); // NaN
console.log(Math.round("11.15")); // 11
Если в строке текст, результат будет NaN. Строку с числом JavaScript сначала приводит к числу, а затем округляет.
console.log(Math.ceil(true)); // 1
console.log(Math.round(false)); // 0
Булевы значения true и false преобразуются в числа 1 и 0 соответственно.
Значение null в JavaScript означает «пусто». Его можно задать вручную, если переменная пока ничего не хранит.
let value = null;
console.log(Math.ceil(value)); // 0
При округлении null логично превращается в 0.
Значение undefined означает, что переменная есть, но в ней ничего не лежит. Это значение присваивается автоматически, если вы что-то объявили, но не задали.
let value;
console.log(Math.round(value)); // NaN
Здесь переменная value существует, но округлить её невозможно. Результат — NaN.
Если вы попытаетесь округлить NaN, результат снова будет NaN:
console.log(Math.ceil(NaN)); // NaN
В JavaScript даже массив можно округлить. Звучит странно, но иногда это работает.
Рассмотрим три примера:
console.log(Math.ceil([5.3])); // 6
console.log(Math.round([])); // 0
console.log(Math.ceil([1, 5])); // NaN
Массив [5.3] сначала превращается в обычное число 5.3. После этого Math.ceil() округляет его вверх, получается 6.
Пустой массив [] превращается в 0. Поэтому результат округления — ноль.
В последнем массиве два значения: [1, 5]. JavaScript не может понять, какое число имелось в виду. Поэтому результат — NaN.
Если вы работаете с вводом от пользователя, всегда явно приводите его к числу перед округлением:
let inputValue = prompt("Введите число:");
Math.floor(Number(inputValue));
Это поможет избежать непредсказуемого поведения. NaN опасен, потому что он распространяется по цепочке вычислений:
let x = NaN;
let y = x + 5; // Тоже NaN
Методы Math напрямую не поддерживают округление до знаков после запятой. Чтобы округлить число, например, до 2 знаков, есть несколько способов, в том числе с использованием альтернативных методов.
Чтобы округлить число до n знаков после запятой:
- умножим его на 10^n — чтобы сдвинуть запятую;
- применим округление;
- результат разделим обратно на 10^n.
Например, округлим число 1,23789 до 2 знаков после запятой:
function roundTo(num, decimals) {
const factor = 10 ** decimals;
return Math.round(num * factor) / factor;
} // Функция округляет число до n знаков после запятой
roundTo(1.23789, 2); // 1.24
roundTo(1.234, 1); // 1.2
Метод toFixed() округляет число до нужного количества знаков после запятой. Он работает по обычным правилам математики: если следующая цифра 5 и больше — округляем вверх. Но этот метод возвращает строку, а не число.
const num = 5.6789;
const result = num.toFixed(2);
console.log(result); // "5.68"
Здесь число округлилось до двух знаков после запятой. Получилась строка "5.68".
Если указать 0 или вообще ничего не указывать, округление произойдёт до целого числа:
console.log(num.toFixed(0)); // "6"
console.log(num.toFixed()); // "6"
Строку можно преобразовать обратно в число с помощью parseFloat():
const number = parseFloat(result);
console.log(number); // 5.68
Методы Math.round, Math.floor, Math.ceil, Math.trunc часто применяются на практике.
Представьте, что у вас в корзине товар на сумму 349,999 рубля.На товар действует скидка 12,75 рубля, но магазин округляет скидку вниз до целого числа (чтобы не переплатить). После применения скидки финальная сумма должна быть округлена до ближайшего рубля.
Шаги:
- Округлить скидку вниз (Math.floor).
- Вычесть скидку из суммы.
- Округлить финальную сумму до ближайшего целого (Math.round).
// Исходная сумма товаров
let total = 349.999;
// Скидка, рассчитанная системой
let discount = 12.75;
// Округляем скидку вниз, чтобы не потерять деньги
let discountApplied = Math.floor(discount); // 12
// Промежуточная сумма после скидки
let subtotal = total - discountApplied; // 337.999
// Округляем итоговую сумму до ближайшего рубля
let finalTotal = Math.round(subtotal); // 338
// Выводим результат
console.log(`Итоговая сумма к оплате: ${finalTotal} руб.`);
// Результат: "Итоговая сумма к оплате: 338 руб."
Представьте, что вы создаёте вёрстку сетки с тремя колонками и хотите, чтобы:
- Колонки целиком поместились в контейнер.
- Центральный элемент был идеально выровнен по горизонтали.
Расчёт ширины колонки:
let containerWidth = 799.8; // Ширина всего контейнера (например, в px)
let columnCount = 3; // Количество колонок
let columnWidth = Math.floor(containerWidth / columnCount); // 266 px
console.log(`Ширина одной колонки: ${columnWidth}px`);
// Ширина одной колонки: 266 px
Объяснение:
- Находим ширину одной колонки:
799.8 / 3 = 266.6.
- Округляем вниз, чтобы все три колонки точно поместились в контейнер:
Math.floor(266.6) = 266.
266 × 3 = 798 (всё помещается).
1,8 пикселя остаются — их можно использовать как отступы между колонками.
У нас есть родительский блок шириной 800 px и вложенный элемент шириной 375 px. Нужно найти и выровнять центральный элемент по горизонтали.
Решение:
let parentWidth = 800; // Ширина родительского блока
let childWidth = 375; // Ширина вложенного элемента
let left = Math.round((parentWidth - childWidth) / 2); // 213 px
console.log(`Левый отступ для центрирования: ${left}px`);
Объяснение:
- Найдём левый отступ центрального элемента внутри родительского блока:
(800 − 375) / 2 = 212.5.
- Округляем полученное значение до ближайшего целого пикселя, чтобы избежать «размытых» краёв или смещения.
Math.round(212.5) = 213 px.
Вы хотите плавно перемещать элемент (например, кружок) слева направо. Координата x вычисляется при каждом кадре — она может быть дробной, но CSS left принимает целое число пикселей. Если задать дробное значение, браузер может отрисовать элемент размыто или вызвать дрожание.
Решение:
let x = 123.78; // Текущая позиция из расчёта
// Округляем координату до ближайшего целого
element.style.left = Math.round(x) + "px"; // "124px"
Объяснение:
- x = 123.78 — позиция рассчитывается динамически — например, по времени или скорости.
- Округляем до целого: Math.round(x) = 124.
- CSS требует чётких координат, поэтому element.style.left = 124px.
Если оставить дробные координаты (123.78px), элемент может отрисовываться размыто или дрожать при движении.
Рассмотрим ошибки, которые часто совершают при использовании методов Math.
Иногда новички пытаются использовать Math.round() с двумя аргументами.
Math.round(1.2345, 2) // 1
Это не работает — Math.round принимает только одно число. Второй аргумент игнорируется.
Решение: использовать один аргумент.
Math.round(1.2345 * 100) / 100 // 1.23
Иногда новички думают, что округление решит проблему плавающей запятой:
// Неправильное ожидание:
Math.round(0.1 + 0.2) === 0.3; // false (0.30000000000000004 округляется до 0)
Решение: нужно сначала корректировать точность.
const sum = 0.1 + 0.2;
Math.round(sum * 10) / 10 === 0.3; // true
Курс с трудоустройством: «Профессия Фронтенд-разработчик + ИИ»
Узнать о курсе
<!DOCTYPE html>
<html class="l-html" lang="ru">
<head>
<script>
mindbox = window.mindbox || function() { mindbox.queue.push(arguments); };
mindbox.queue = mindbox.queue || [];
mindbox('create', {
endpointId: 'skillbox.skillboxMediaWebsite'
});
</script>
<script src="https://api.s.mindbox.ru/scripts/v1/tracker.js" async></script>
<script>window.yaContextCb = window.yaContextCb || []</script>
<script src="https://yandex.ru/ads/system/context.js" async></script>
<!-- Google Tag Manager -->
<script async data-skip-moving="true" type="text/javascript">
/** Google Tagmanager */
;(function (w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start':
new Date().getTime(), event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-NLCGQ25');
window.dataLayer = window.dataLayer || [];
function gtag() {
window.dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'GTM-NLCGQ25');
</script>
<!-- End Google Tag Manager -->
<!-- Retail Rocket -->
<script type="text/javascript">
var rrPartnerId = "6048a0d097a52514f050731f";
var rrApi = {};
var rrApiOnReady = rrApiOnReady || [];
rrApi.addToBasket = rrApi.order = rrApi.categoryView = rrApi.view =
rrApi.recomMouseDown = rrApi.recomAddToCart = function() {};
(function(d) {
var ref = d.getElementsByTagName('script')[0];
var apiJs, apiJsId = 'rrApi-jssdk';
if (d.getElementById(apiJsId)) return;
apiJs = d.createElement('script');
apiJs.id = apiJsId;
apiJs.async = true;
apiJs.src = "//cdn.retailrocket.ru/content/javascript/tracking.js";
ref.parentNode.insertBefore(apiJs, ref);
}(document));
</script>
<!-- End Retail Rocket -->
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta http-equiv="X-UA-Compatible" content="ie=edge"/>
<meta name="google-site-verification" content="UA-kf725UpqwkHenFmDQ05SW115fL9UdD9uXiFy-ibQ"/>
<meta name="robots" content="index, follow"/>
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="shortcut icon" href="/favicon.ico">
<link rel="canonical" href="https://skillbox.ru/media/code/math-round-floor-ceil-i-trunc-v-javascript-rukovodstvo-po-okrugleniyu-chisel-v-js/">
<link rel="preload" href="https://marketplace.canva.com/EAD2962NKnQ/2/0/1600w/canva-rainbow-gradient-pink-and-purple-zoom-virtual-background-_Tcjok-d9b4.jpg" as="image" />
<link rel="preload" href="https://via.placeholder.com/1170x250/92c952" as="image" />
<link rel="preload" href="https://via.placeholder.com/768x250/40E0D0" as="image" />
<link rel="preload" href="https://via.placeholder.com/375x250/ffbcee" as="image" />
<title>Math round, floor, ceil и trunc в JavaScript: руководство по округлению чисел в JS / Skillbox Media</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="keywords" content="js math floor, math round js, round js" />
<meta name="description" content="Обзор функций Math.floor, Math.ceil, Math.round, Math.trunc в JavaScript: назначение, синтаксис, различия, примеры использования. Подробно о методах округления в JavaScript: в меньшую и большую сторону, до целого, до сотых." />
<link href="/bitrix/cache/css/s1/media/kernel_main/kernel_main_v1.css?177096852510536" type="text/css" rel="stylesheet" />
<link href="/bitrix/js/ui/fonts/opensans/ui.font.opensans.css?16341171742599" type="text/css" rel="stylesheet" />
<link href="/bitrix/js/main/popup/dist/main.popup.bundle.css?163411696226345" type="text/css" rel="stylesheet" />
<link href="//cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.1/css/swiper.min.css" type="text/css" rel="stylesheet" />
<link href="/bitrix/cache/css/s1/media/page_a1ad23d5ae1fea4c6ac7c690c80a4763/page_a1ad23d5ae1fea4c6ac7c690c80a4763_v1.css?1771490810746236" type="text/css" rel="stylesheet" />
<link href="/bitrix/cache/css/s1/media/template_176a7c2453ad8025fa7d27f65ba6a4b1/template_176a7c2453ad8025fa7d27f65ba6a4b1_v1.css?1771490810442835" type="text/css" data-template-style="true" rel="stylesheet" />
<script type="text/javascript">if(!window.BX)window.BX={};if(!window.BX.message)window.BX.message=function(mess){if(typeof mess==='object'){for(let i in mess) {BX.message[i]=mess[i];} return true;}};</script>
<script type="text/javascript">(window.BX||top.BX).message({'JS_CORE_LOADING':'Загрузка...','JS_CORE_NO_DATA':'- Нет данных -','JS_CORE_WINDOW_CLOSE':'Закрыть','JS_CORE_WINDOW_EXPAND':'Развернуть','JS_CORE_WINDOW_NARROW':'Свернуть в окно','JS_CORE_WINDOW_SAVE':'Сохранить','JS_CORE_WINDOW_CANCEL':'Отменить','JS_CORE_WINDOW_CONTINUE':'Продолжить','JS_CORE_H':'ч','JS_CORE_M':'м','JS_CORE_S':'с','JSADM_AI_HIDE_EXTRA':'Скрыть лишние','JSADM_AI_ALL_NOTIF':'Показать все','JSADM_AUTH_REQ':'Требуется авторизация!','JS_CORE_WINDOW_AUTH':'Войти','JS_CORE_IMAGE_FULL':'Полный размер'});</script>
<script type="text/javascript" src="/bitrix/js/main/core/core.js?1634117028565340"></script>
<script>BX.setJSList(['/bitrix/js/main/core/core_ajax.js','/bitrix/js/main/core/core_promise.js','/bitrix/js/main/polyfill/promise/js/promise.js','/bitrix/js/main/loadext/loadext.js','/bitrix/js/main/loadext/extension.js','/bitrix/js/main/polyfill/promise/js/promise.js','/bitrix/js/main/polyfill/find/js/find.js','/bitrix/js/main/polyfill/includes/js/includes.js','/bitrix/js/main/polyfill/matches/js/matches.js','/bitrix/js/ui/polyfill/closest/js/closest.js','/bitrix/js/main/polyfill/fill/main.polyfill.fill.js','/bitrix/js/main/polyfill/find/js/find.js','/bitrix/js/main/polyfill/matches/js/matches.js','/bitrix/js/main/polyfill/core/dist/polyfill.bundle.js','/bitrix/js/main/core/core.js','/bitrix/js/main/polyfill/intersectionobserver/js/intersectionobserver.js','/bitrix/js/main/lazyload/dist/lazyload.bundle.js','/bitrix/js/main/polyfill/core/dist/polyfill.bundle.js','/bitrix/js/main/parambag/dist/parambag.bundle.js']);
BX.setCSSList(['/bitrix/js/main/lazyload/dist/lazyload.bundle.css','/bitrix/js/main/parambag/dist/parambag.bundle.css']);</script>
<script type="text/javascript">(window.BX||top.BX).message({'AMPM_MODE':false});(window.BX||top.BX).message({'MONTH_1':'Январь','MONTH_2':'Февраль','MONTH_3':'Март','MONTH_4':'Апрель','MONTH_5':'Май','MONTH_6':'Июнь','MONTH_7':'Июль','MONTH_8':'Август','MONTH_9':'Сентябрь','MONTH_10':'Октябрь','MONTH_11':'Ноябрь','MONTH_12':'Декабрь','MONTH_1_S':'января','MONTH_2_S':'февраля','MONTH_3_S':'марта','MONTH_4_S':'апреля','MONTH_5_S':'мая','MONTH_6_S':'июня','MONTH_7_S':'июля','MONTH_8_S':'августа','MONTH_9_S':'сентября','MONTH_10_S':'октября','MONTH_11_S':'ноября','MONTH_12_S':'декабря','MON_1':'янв','MON_2':'фев','MON_3':'мар','MON_4':'апр','MON_5':'май','MON_6':'июн','MON_7':'июл','MON_8':'авг','MON_9':'сен','MON_10':'окт','MON_11':'ноя','MON_12':'дек','DAY_OF_WEEK_0':'Воскресенье','DAY_OF_WEEK_1':'Понедельник','DAY_OF_WEEK_2':'Вторник','DAY_OF_WEEK_3':'Среда','DAY_OF_WEEK_4':'Четверг','DAY_OF_WEEK_5':'Пятница','DAY_OF_WEEK_6':'Суббота','DOW_0':'Вс','DOW_1':'Пн','DOW_2':'Вт','DOW_3':'Ср','DOW_4':'Чт','DOW_5':'Пт','DOW_6':'Сб','FD_SECOND_AGO_0':'#VALUE# секунд назад','FD_SECOND_AGO_1':'#VALUE# секунду назад','FD_SECOND_AGO_10_20':'#VALUE# секунд назад','FD_SECOND_AGO_MOD_1':'#VALUE# секунду назад','FD_SECOND_AGO_MOD_2_4':'#VALUE# секунды назад','FD_SECOND_AGO_MOD_OTHER':'#VALUE# секунд назад','FD_SECOND_DIFF_0':'#VALUE# секунд','FD_SECOND_DIFF_1':'#VALUE# секунда','FD_SECOND_DIFF_10_20':'#VALUE# секунд','FD_SECOND_DIFF_MOD_1':'#VALUE# секунда','FD_SECOND_DIFF_MOD_2_4':'#VALUE# секунды','FD_SECOND_DIFF_MOD_OTHER':'#VALUE# секунд','FD_SECOND_SHORT':'#VALUE#с','FD_MINUTE_AGO_0':'#VALUE# минут назад','FD_MINUTE_AGO_1':'#VALUE# минуту назад','FD_MINUTE_AGO_10_20':'#VALUE# минут назад','FD_MINUTE_AGO_MOD_1':'#VALUE# минуту назад','FD_MINUTE_AGO_MOD_2_4':'#VALUE# минуты назад','FD_MINUTE_AGO_MOD_OTHER':'#VALUE# минут назад','FD_MINUTE_DIFF_0':'#VALUE# минут','FD_MINUTE_DIFF_1':'#VALUE# минута','FD_MINUTE_DIFF_10_20':'#VALUE# минут','FD_MINUTE_DIFF_MOD_1':'#VALUE# минута','FD_MINUTE_DIFF_MOD_2_4':'#VALUE# минуты','FD_MINUTE_DIFF_MOD_OTHER':'#VALUE# минут','FD_MINUTE_0':'#VALUE# минут','FD_MINUTE_1':'#VALUE# минуту','FD_MINUTE_10_20':'#VALUE# минут','FD_MINUTE_MOD_1':'#VALUE# минуту','FD_MINUTE_MOD_2_4':'#VALUE# минуты','FD_MINUTE_MOD_OTHER':'#VALUE# минут','FD_MINUTE_SHORT':'#VALUE#мин','FD_HOUR_AGO_0':'#VALUE# часов назад','FD_HOUR_AGO_1':'#VALUE# час назад','FD_HOUR_AGO_10_20':'#VALUE# часов назад','FD_HOUR_AGO_MOD_1':'#VALUE# час назад','FD_HOUR_AGO_MOD_2_4':'#VALUE# часа назад','FD_HOUR_AGO_MOD_OTHER':'#VALUE# часов назад','FD_HOUR_DIFF_0':'#VALUE# часов','FD_HOUR_DIFF_1':'#VALUE# час','FD_HOUR_DIFF_10_20':'#VALUE# часов','FD_HOUR_DIFF_MOD_1':'#VALUE# час','FD_HOUR_DIFF_MOD_2_4':'#VALUE# часа','FD_HOUR_DIFF_MOD_OTHER':'#VALUE# часов','FD_HOUR_SHORT':'#VALUE#ч','FD_YESTERDAY':'вчера','FD_TODAY':'сегодня','FD_TOMORROW':'завтра','FD_DAY_AGO_0':'#VALUE# дней назад','FD_DAY_AGO_1':'#VALUE# день назад','FD_DAY_AGO_10_20':'#VALUE# дней назад','FD_DAY_AGO_MOD_1':'#VALUE# день назад','FD_DAY_AGO_MOD_2_4':'#VALUE# дня назад','FD_DAY_AGO_MOD_OTHER':'#VALUE# дней назад','FD_DAY_DIFF_0':'#VALUE# дней','FD_DAY_DIFF_1':'#VALUE# день','FD_DAY_DIFF_10_20':'#VALUE# дней','FD_DAY_DIFF_MOD_1':'#VALUE# день','FD_DAY_DIFF_MOD_2_4':'#VALUE# дня','FD_DAY_DIFF_MOD_OTHER':'#VALUE# дней','FD_DAY_AT_TIME':'#DAY# в #TIME#','FD_DAY_SHORT':'#VALUE#д','FD_MONTH_AGO_0':'#VALUE# месяцев назад','FD_MONTH_AGO_1':'#VALUE# месяц назад','FD_MONTH_AGO_10_20':'#VALUE# месяцев назад','FD_MONTH_AGO_MOD_1':'#VALUE# месяц назад','FD_MONTH_AGO_MOD_2_4':'#VALUE# месяца назад','FD_MONTH_AGO_MOD_OTHER':'#VALUE# месяцев назад','FD_MONTH_DIFF_0':'#VALUE# месяцев','FD_MONTH_DIFF_1':'#VALUE# месяц','FD_MONTH_DIFF_10_20':'#VALUE# месяцев','FD_MONTH_DIFF_MOD_1':'#VALUE# месяц','FD_MONTH_DIFF_MOD_2_4':'#VALUE# месяца','FD_MONTH_DIFF_MOD_OTHER':'#VALUE# месяцев','FD_MONTH_SHORT':'#VALUE#мес','FD_YEARS_AGO_0':'#VALUE# лет назад','FD_YEARS_AGO_1':'#VALUE# год назад','FD_YEARS_AGO_10_20':'#VALUE# лет назад','FD_YEARS_AGO_MOD_1':'#VALUE# год назад','FD_YEARS_AGO_MOD_2_4':'#VALUE# года назад','FD_YEARS_AGO_MOD_OTHER':'#VALUE# лет назад','FD_YEARS_DIFF_0':'#VALUE# лет','FD_YEARS_DIFF_1':'#VALUE# год','FD_YEARS_DIFF_10_20':'#VALUE# лет','FD_YEARS_DIFF_MOD_1':'#VALUE# год','FD_YEARS_DIFF_MOD_2_4':'#VALUE# года','FD_YEARS_DIFF_MOD_OTHER':'#VALUE# лет','FD_YEARS_SHORT_0':'#VALUE#л','FD_YEARS_SHORT_1':'#VALUE#г','FD_YEARS_SHORT_10_20':'#VALUE#л','FD_YEARS_SHORT_MOD_1':'#VALUE#г','FD_YEARS_SHORT_MOD_2_4':'#VALUE#г','FD_YEARS_SHORT_MOD_OTHER':'#VALUE#л','CAL_BUTTON':'Выбрать','CAL_TIME_SET':'Установить время','CAL_TIME':'Время','FD_LAST_SEEN_TOMORROW':'завтра в #TIME#','FD_LAST_SEEN_NOW':'только что','FD_LAST_SEEN_TODAY':'сегодня в #TIME#','FD_LAST_SEEN_YESTERDAY':'вчера в #TIME#','FD_LAST_SEEN_MORE_YEAR':'более года назад'});</script>
<script type="text/javascript">(window.BX||top.BX).message({'WEEK_START':'1'});</script>
<script type="text/javascript">(window.BX||top.BX).message({'LANGUAGE_ID':'ru','FORMAT_DATE':'DD.MM.YYYY','FORMAT_DATETIME':'DD.MM.YYYY HH:MI:SS','COOKIE_PREFIX':'BITRIX_SM','SERVER_TZ_OFFSET':'10800','UTF_MODE':'Y','SITE_ID':'s1','SITE_DIR':'/','USER_ID':'','SERVER_TIME':'1771698891','USER_TZ_OFFSET':'0','USER_TZ_AUTO':'Y','bitrix_sessid':'7a93bcbce898276f56a534533cf1334b'});</script>
<script type="text/javascript" src="/bitrix/js/main/date/main.date.js?159955296434530"></script>
<script type="text/javascript" src="/bitrix/js/main/popup/dist/main.popup.bundle.js?1634116962109107"></script>
<script type="text/javascript" src="/bitrix/js/main/core/core_date.js?163411653136080"></script>
<script type="text/javascript" src="/bitrix/js/ui/vue/vue2/prod/dist/vue.bundle.js?1635848017173206"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.1/js/swiper.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/fingerprintjs2/2.1.0/fingerprint2.min.js"></script>
<script type="text/javascript">BX.setCSSList(['/bitrix/js/main/core/css/core_date.css','/setka/css/setka_skillbox.css','/local/templates/.default/components/bitrix/news.detail/article/style.css','/static/css/newarticle.css','/local/templates/media/libs/jquery.formstyler.css','/local/templates/media/fonts/graphik-font/stylesheet.css','/static/css/main.css','/local/templates/media/template_styles.css']);</script>
<script src="https://cdn.skillbox.pro/frontend-libs/promo-banner/5.10.1/banner-plugin.min.js"></script>
<script type="text/javascript" async src="https://relap.io/api/v6/head.js?token=sI73Ph6a5BnkqK2o"></script>
<meta property="og:title" content="Math round, floor, ceil и trunc в JavaScript: руководство по округлению чисел в JS" />
<meta property="og:description" content="Подробно о методах округления в JavaScript: в меньшую и большую сторону, до целого, до сотых." />
<meta property="og:url" content="https://skillbox.ru/media/code/math-round-floor-ceil-i-trunc-v-javascript-rukovodstvo-po-okrugleniyu-chisel-v-js/" />
<meta property="og:type" content="article" />
<meta property="og:site_name" content="skillbox.ru" />
<meta property="og:locale" content="ru_RU" />
<meta property="og:image" content="https://248006.selcdn.ru/main/iblock/3a5/3a5365bedceea59888e0cfcbf52c3a75/bf8865cdb743fbac4647120200d3cfab.jpg" />
<meta name="relap-image" content="https://248006.selcdn.ru/main/iblock/3a5/3a5365bedceea59888e0cfcbf52c3a75/bf8865cdb743fbac4647120200d3cfab.jpg" />
<meta property="og:image:width" content="600" />
<meta property="og:image:height" content="315" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:image" content="https://248006.selcdn.ru/main/iblock/3a5/3a5365bedceea59888e0cfcbf52c3a75/bf8865cdb743fbac4647120200d3cfab.jpg" />
<meta property="vk:image" content="https://248006.selcdn.ru/main/iblock/849/84980564b3922263f56b097da228a2c9/92cc349dce00a4a804108813ffbacb8d.jpg" />
<meta property="article:author" content="Марина Демидова" />
<meta property="article:tag" content="статьи" />
<meta property="article:section" content="Код" />
<script type="text/javascript" src="/static/js/vendor.js?1771489421543641"></script>
<script type="text/javascript" src="/local/assets/js/common.js?177148933727419"></script>
<script type="text/javascript" src="/static/js/main.js?1771489421125222"></script>
<script type="text/javascript" src="/local/templates/media/js/main.js?17714893372418"></script>
<script type="text/javascript" src="/local/components/prmedia/popup.subscribe/templates/.default/script.js?17714893376820"></script>
<script type="text/javascript" src="/local/templates/.default/components/bitrix/news.detail/article/infinity.js?177148933713735"></script>
<script type="text/javascript" src="/local/templates/.default/components/bitrix/news/articles/script.js?1771489337246"></script>
<script type="text/javascript" src="/setka/js/setka_skillbox.js?1771489337106775"></script>
<script type="text/javascript" src="/local/templates/.default/components/bitrix/news.detail/article/script.js?17714893377503"></script>
<script type="text/javascript">var _ba = _ba || []; _ba.push(["aid", "84a6082a990bbac8858fb733b97bed30"]); _ba.push(["host", "skillbox.ru"]); (function() {var ba = document.createElement("script"); ba.type = "text/javascript"; ba.async = true;ba.src = (document.location.protocol == "https:" ? "https://" : "http://") + "bitrix.info/ba.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ba, s);})();</script>
</head>
<body>
<div class="js-sticky-delimiter"></div>
<div class="bx-panel"></div>
<!-- Google Tag Manager (noscript) -->
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NLCGQ25" height="0" width="0"
style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->
<svg class="app-svg-visually-hidden" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="def-arrow-down-a" d="M223 20813l4 5 4-5z"/>
<path id="def-arrow-a" d="M1044.6 803.2a.81.81 0 01-.5.18.8.8 0 01-.8-.8v-3.24c-2.97.1-5.17.88-6.52 2.3a4.86 4.86 0 00-1.39 3.29.8.8 0 01-.75.83h-.04a.79.79 0 01-.79-.74c-.22-3.78.69-6.76 2.69-8.84a10.76 10.76 0 016.81-3.07v-3.3a.8.8 0 011.29-.63l7.91 6.39a.8.8 0 010 1.25zm.3-11.73v2.42a.5.5 0 01-.03.1.8.8 0 01-.05.21.78.78 0 01-.47.42.67.67 0 01-.25.05h-.01c-.06 0-3.93-.04-6.46 2.62-.8.85-1.4 1.87-1.74 2.99 1.79-1.7 4.55-2.57 8.21-2.57.44 0 .8.36.8.8v2.4l5.85-4.72z"/>
<path id="def-be-a" d="M55.6 29.58h6.12v-1.59H55.6zm.64 5.74s.26-2.23 2.58-2.23c2.32 0 2.26 2.23 2.26 2.23zm-3.23 1.27S52.56 42 58.72 42c0 0 5.26.37 5.26-3.81H61.4s-.09 1.59-2.58 1.59c0 0-2.58.17-2.58-2.55l7.74-.01c-.08-.32.9-6.42-5.16-6.36-5.77.05-5.81 5.73-5.81 5.73zm-10.34 2.8v-4.24H47s1.7.16 1.7 2.24c0 1.76-1.06 1.99-1.7 2zM47 29.61s1.16.06 1.16 1.62-.76 1.64-1.49 1.64h-4v-3.26zm4.33 1.3c0-2.68-1.81-3.91-4.26-3.91H39v15.01h8.07s4.92.15 4.92-4.43c0 0 .22-3.73-2.9-3.73 0 0 2.24-.25 2.24-2.94z"/>
<path id="def-briefcase-a" d="M855 13538c0-1.7 1.3-3 3-3s3 1.3 3 3v7c0 1.7-1.3 3-3 3s-3-1.3-3-3v-7z"/>
<path id="def-comments-a" d="M752 8958l-4 4v-12a1 1 0 011-1h11a1 1 0 011 1v7a1 1 0 01-1 1zm12-6v13l-3.2-4H751l2-2h9v-8h1c1 0 1 .45 1 1z"/>
<path id="def-eaye-a" d="M630 8956.22c0 1.04-3.58 5.21-8 5.21s-8-4.26-8-5.21c0-1.05 3.58-5.22 8-5.22s8 4.17 8 5.22zm-5 0h-3v-3.13a3.13 3.13 0 100 6.26 3.07 3.07 0 003-3.13z"/>
<path id="def-file-a" d="M493 9457a2 2 0 01-1.98-2v-16a2 2 0 011.98-2h19.82c1.13 0 2.07.87 2.15 2v16a2.15 2.15 0 01-2.15 2zm0-18v8.83l5.3-4.59a.98.98 0 011.35.05l5.34 5.39 3.27-2.48a.98.98 0 011.36.16l3.35 4.07V9439zm19.97 14.55l-4.27-5.18-3.21 2.43c-.4.3-.95.26-1.3-.09l-5.3-5.35-5.9 5.1v4.54h19.98zm-6.1-10.55a1.98 1.98 0 113.97.04 1.98 1.98 0 01-3.97-.04z"/>
<path id="def-gplus-a" d="M466 10169a4 4 0 013.87-3.99 4.14 4.14 0 012.93.99c-.33.36-.67.71-1.03 1.04-.72-.42-1.58-.75-2.41-.46a2.52 2.52 0 00-1.67 3.23c.41 1.35 2.09 2.1 3.4 1.52a2.22 2.22 0 001.33-1.51c-.78-.01-1.56 0-2.34-.03v-1.36h3.9a4.45 4.45 0 01-.83 3.2c-1 1.28-2.88 1.66-4.4 1.16a4 4 0 01-2.75-3.79z"/><path id="def-gplus-b" d="M476.34 10166h1.32l.01 1.33H479v1.33l-1.33.01v1.33h-1.33l-.01-1.33H475v-1.33l1.33-.01.01-1.33z"/>
<path id="def-inst-a" d="M1480.93 332c-3.5 0-3.95.02-5.32.07-1.37.07-2.3.28-3.14.6-.84.34-1.57.77-2.28 1.5a6.36 6.36 0 00-1.5 2.28 9.84 9.84 0 00-.6 3.14c-.07 1.37-.07 1.82-.07 5.32s.02 3.96.07 5.32c.07 1.37.28 2.31.6 3.14.34.85.77 1.58 1.5 2.29a6.51 6.51 0 002.28 1.5c.82.3 1.77.53 3.14.6 1.37.07 1.82.07 5.32.07s3.96-.02 5.32-.07a9.48 9.48 0 003.14-.6 6.14 6.14 0 002.29-1.5 6.36 6.36 0 001.5-2.29c.3-.81.53-1.77.6-3.14.07-1.36.07-1.82.07-5.32s-.02-3.95-.07-5.32a9.48 9.48 0 00-.6-3.14 6.14 6.14 0 00-1.5-2.28 6.36 6.36 0 00-2.29-1.5 9.84 9.84 0 00-3.14-.6c-1.38-.05-1.82-.07-5.32-.07zm0 2.32c3.45 0 3.85.02 5.22.07 1.27.05 1.94.26 2.4.45.6.25 1.03.52 1.48.97.45.45.73.89.97 1.5.18.44.39 1.14.45 2.39.07 1.37.07 1.76.07 5.21s-.01 3.85-.07 5.22a6.55 6.55 0 01-.45 2.4c-.24.6-.52 1.03-.97 1.48-.45.45-.88.73-1.49.97-.45.18-1.14.39-2.39.45-1.37.07-1.77.07-5.22.07-3.45 0-3.84-.01-5.21-.07a6.55 6.55 0 01-2.4-.45 4.11 4.11 0 01-1.49-.97 4.11 4.11 0 01-.97-1.49 7.52 7.52 0 01-.45-2.39c-.07-1.37-.07-1.77-.07-5.22 0-3.45.02-3.84.07-5.21.05-1.27.26-1.95.45-2.4.25-.6.52-1.04.97-1.49.45-.45.89-.72 1.5-.97a7.52 7.52 0 012.39-.45c1.35-.05 1.76-.07 5.21-.07z"/><path id="def-inst-b" d="M1480.93 349.2a4.3 4.3 0 110-8.59 4.3 4.3 0 010 8.6zm0-10.93a6.62 6.62 0 100 13.24 6.62 6.62 0 000-13.24z"/><path id="def-inst-c" d="M1486.27 338.01a1.54 1.54 0 113.09 0 1.54 1.54 0 01-3.09 0z"/>
<path id="def-like-down-a" d="M1004.33 543.66c-1.1 0-2.45-.86-2.61-3.31-.05-1.41.11-2.82.48-4.19h-2.96c-2.15 0-3.42-1.35-3.42-2.67 0-.39.05-.77.17-1.13a2.4 2.4 0 01-.99-2.03 2.35 2.35 0 011.02-2.05c-.12-.34-.18-.7-.17-1.06.86-.6 1.2-1.7.86-2.7 0-2.52 3.45-2.52 4.57-2.52h2.85c1.3.06 2.56.4 3.71 1 .67.36 1.41.6 2.18.67h3.23c.25 0 .5.11.65.31.12.14 1.1 1.47 1.1 4.69.03 1.8-.28 3.6-.9 5.31a.83.83 0 01-.67.5c-.03 0-3.27.4-4.85 1.98a10.32 10.32 0 00-2.8 5.94 1.4 1.4 0 01-1.45 1.26zm-6.84-10.17c0 .34.52 1 1.75 1h4.06a.83.83 0 01.8 1.1c-.5 1.5-.73 3.07-.72 4.65.08 1.1.44 1.6.79 1.72a11.94 11.94 0 013.23-6.67c1.57-1.58 4.2-2.18 5.32-2.38.41-1.37.62-2.8.61-4.24a8.18 8.18 0 00-.56-3.34h-2.75c-1-.07-1.97-.35-2.85-.81a7.53 7.53 0 00-3.04-.85h-2.85c-1.32 0-2.9.15-2.9.85-.02.11.02.22.09.3a.73.73 0 01.75.77.92.92 0 01-.85.87.85.85 0 00-.85.77c-.05.22.01.44.17.6.42.07.71.45.67.88a.87.87 0 01-.86.77.77.77 0 00-.83.85.8.8 0 00.87.85c.46.01.82.4.81.85 0 .43-.33.78-.76.8-.09.21-.12.44-.1.66z"/>
<path id="def-like-up-a" d="M944.67 520c1.1 0 2.45.87 2.61 3.32.05 1.4-.11 2.82-.48 4.18h2.96c2.15 0 3.42 1.36 3.42 2.67 0 .39-.05.77-.17 1.14a2.4 2.4 0 01.99 2.02c.04.81-.35 1.59-1.02 2.05.12.34.18.7.17 1.07-.86.6-1.2 1.7-.86 2.69 0 2.52-3.45 2.52-4.57 2.52h-2.85a8.94 8.94 0 01-3.71-.99 5.67 5.67 0 00-2.18-.67h-3.23a.83.83 0 01-.65-.32c-.12-.14-1.1-1.47-1.1-4.68-.03-1.81.28-3.62.9-5.32a.83.83 0 01.67-.5c.03 0 3.27-.4 4.85-1.98a10.32 10.32 0 002.8-5.93 1.4 1.4 0 011.45-1.27zm6.84 10.17c0-.34-.52-1-1.75-1h-4.06a.83.83 0 01-.8-1.1c.5-1.5.73-3.07.72-4.65-.08-1.1-.44-1.6-.79-1.72a11.94 11.94 0 01-3.23 6.67c-1.57 1.58-4.2 2.19-5.32 2.38a14.38 14.38 0 00-.61 4.25 8.18 8.18 0 00.56 3.33h2.75c1 .07 1.97.35 2.85.82.94.49 1.98.78 3.04.85h2.85c1.32 0 2.9-.15 2.9-.86a.35.35 0 00-.09-.3.73.73 0 01-.75-.77.92.92 0 01.85-.87c.44 0 .81-.33.85-.77a.65.65 0 00-.17-.6.81.81 0 01-.67-.87.87.87 0 01.86-.78.77.77 0 00.83-.85.8.8 0 00-.87-.85.83.83 0 01-.81-.85c0-.43.33-.78.76-.8.09-.21.12-.43.1-.66z"/>
<path id="def-like-a" d="M701.32 8960.32a.95.95 0 01-.95.95h-5.72c-.96 0-1.92-.95-2.87-.95h-.95v-6.68c.04-.6.4-1.12.95-1.36a4.78 4.78 0 002.87-4.37v-.96a.95.95 0 01.95-.95h.95c.53 0 .95.43.95.95v5.73h3.82a.9.9 0 01.96.96zm-14.31.95v-9.54h1.9a.96.96 0 01.97.95v7.64a.96.96 0 01-.96.95zm.99-8.3a.48.48 0 10.88.38.48.48 0 00-.88-.38z"/>
<path id="def-link-a" d="M626.02 1163.93l-.02 15.99 13.02.01v-4a.86.86 0 01.24-.68.9.9 0 01.66-.28 1 1 0 011 1v4.95a1 1 0 01-.29.7 1 1 0 01-.71.29H625a1 1 0 01-.71-.29 1 1 0 01-.29-.7V1163a1 1 0 011-1h3.95a1 1 0 011 1 .89.89 0 01-.93.93z"/><path id="def-link-b" d="M641.95 1171a1 1 0 01-1-1v-5.59l-9.25 9.3a.99.99 0 01-1.41-.01.99.99 0 01.01-1.41l9.24-9.29h-5.56a1 1 0 01-1-1 1 1 0 011-1h7.97a1 1 0 011 1v8a1 1 0 01-1 1z"/>
<path id="def-mail-a" d="M1058 261c0-.6-.4-1-1-1h-14c-.6 0-1 .4-1 1l8 6.5z"/><path id="def-mail-b" d="M1042 262.5v8.5c0 .6.4 1 1 1h14c.6 0 1-.4 1-1v-8.5l-8 6.5z"/>
<path id="def-outside-a" d="M1204.24 9231.16h-10.05c-.92 0-1.67-.75-1.67-1.68v-4.2c0-.46.38-.84.84-.84a.81.81 0 01.8.84v4.2h10.08v-16.8h-10.08v4.2a.81.81 0 01-.8.84.84.84 0 01-.84-.84v-4.2c0-.93.75-1.68 1.67-1.68h10.05c.92 0 1.67.75 1.67 1.68v16.8c0 .93-.75 1.68-1.67 1.68zm-15.56-10.92h11.37a.84.84 0 110 1.68h-11.36l1.91 1.92a.84.84 0 11-1.18 1.2l-3.35-3.36a.86.86 0 01-.24-.6v-.02a.83.83 0 01.24-.58l3.35-3.36a.83.83 0 011.18 0c.33.33.33.87 0 1.2z"/>
<path id="def-pencil-a" d="M1190.84 9818.68a.64.64 0 01-.19.13l-.07.06-4.42 1.82c-.1.05-.21.07-.32.07a.83.83 0 01-.77-1.15l1.84-4.4v-.02a.38.38 0 01.09-.13l.08-.13v-.01l10.82-10.82-.44-.44-3.56 3.57a.83.83 0 01-1.18-1.18l4.16-4.15a.81.81 0 011.17 0l1.03 1.03 1.86-1.86a.84.84 0 011.17 0l2.58 2.58c.33.32.33.85 0 1.18zm-2.88-1.7l-.58 1.41 1.41-.58zm.88-1.47l1.41 1.4 10.24-10.23-1.4-1.4zm12.69-12.68l-1.27 1.27 1.4 1.4 1.28-1.27z"/>
<path id="def-phone-a" d="M732.62 41c-2.25 0-6.37-2.73-10.24-6.78a33.08 33.08 0 01-5.22-6.96c-1.33-2.53-1.52-4.32-.56-5.31l2.91-2.72c.17-.16.4-.24.63-.23.24.02.46.13.61.32l3.79 4.58c.23.28.28.68.12 1.01l-1.47 3.08 5.24 5.48 2.93-1.54a.83.83 0 01.96.12l4.38 3.96c.17.16.28.38.3.63a.97.97 0 01-.22.67l-2.53 3.02c-.33.34-.81.67-1.63.67zm-14.76-17.78c-.15.21-.25 1.09.83 3.15 1.06 2 2.8 4.32 4.93 6.55 3.87 4.06 7.53 6.25 9 6.25.2 0 .3-.04.33-.08l1.94-2.3-3.27-2.95-2.98 1.56a.84.84 0 01-1.01-.17l-6.12-6.42a.92.92 0 01-.16-1.05l1.48-3.12-2.82-3.42z"/>
<path id="def-plus-a" d="M1223.33 4172.67h-6.66v6.66a.67.67 0 01-1.34 0v-6.66h-6.66a.67.67 0 010-1.34h6.66v-6.66a.67.67 0 011.34 0v6.66h6.66a.67.67 0 010 1.34z"/>
<path id="def-search-a" d="M1092.53 24.87a6.7 6.7 0 10-.05 13.4 6.7 6.7 0 00.05-13.4zm12.1 18.85a.95.95 0 01-1.35 0l-5.4-5.43a8.62 8.62 0 111.35-1.35l5.4 5.43c.37.37.37.98 0 1.35z"/>
<path id="def-shape-a" d="M879 13323h-4a1 1 0 01-1-1v-4a1 1 0 011-1h.85c-1.29-8.14-8.38-15.22-16.85-16.81v.81a1 1 0 01-1 1h-4a1 1 0 01-1-1v-.81c-8.47 1.6-15.56 8.67-16.85 16.81h.85a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4a1 1 0 011-1h1.13c1.03-7.24 6.24-13.76 13.07-17h-6.48a1.98 1.98 0 01-1.72 1.01c-.97 0-1.8-.69-1.98-1.65a2 2 0 011.28-2.23 2 2 0 012.42.87H853v-1a1 1 0 011-1h4a1 1 0 011 1v1h12.27a2.01 2.01 0 110 2h-6.47c6.83 3.24 12.04 9.76 13.07 17H879a1 1 0 011 1v4a1 1 0 01-1 1zm-43-4h-2v2h2zm21-21h-2v2h2zm21 21h-2v2h2zm-22.93-12.51a.52.52 0 01.1-.18l.01-.03.03-.03a1 1 0 01.2-.21l.06-.04c.06-.04.12-.08.19-.1l.04-.02.09-.01.05-.01.16-.03.15.03h.04l.11.01.04.02.19.1.02.02.02.01a.92.92 0 01.24.25l.02.03c.04.05.08.12.1.18l.03.05c.02.07 2.33 7.26 8.51 10.59.26.14.45.39.51.68a.97.97 0 01-.2.82 23.7 23.7 0 00-3.99 8.81 8.02 8.02 0 012.21 5.57 1 1 0 01-1 1h-14a1 1 0 01-1-1 8.02 8.02 0 012.21-5.57 23.66 23.66 0 00-3.99-8.8 1 1 0 01.31-1.51c6.21-3.34 8.49-10.52 8.51-10.59l.03-.04zm.93 20.49a6 6 0 00-5.92 5.02h11.84a6 6 0 00-5.92-5.02zm-4.06-.9a8.17 8.17 0 018.12 0 25.8 25.8 0 013.47-7.78 20.33 20.33 0 01-6.53-6.96v6.93a2 2 0 01-.97 3.73 2.03 2.03 0 01-2.03-2 2 2 0 011-1.7v-6.96a20.33 20.33 0 01-6.53 6.96 25.8 25.8 0 013.47 7.78z"/>
<path id="def-strawberry-a" d="M873.26 13427.96a7.49 7.49 0 01-4.13-1.21 20.45 20.45 0 012.02 8.92c0 10.41-17.26 18.25-28.46 18.25-3.71 0-6.53-.86-8.17-2.48l-.1-.1c-3.9-4.01-2.65-13.97.62-21.78 3.77-9.01 9.53-14.39 15.41-14.39 3.1 0 6.17.68 8.97 1.99a8.12 8.12 0 01-.65-1.24c-1.09-2.7-.53-5.87 1.68-9.44a1 1 0 011.11-.45c.21.06 5.12 1.38 6.8 5.49.8 2.19.7 4.61-.29 6.72 1.25-.51 2.58-.79 3.92-.83 5.12 0 7.74 4.75 8.4 7.26a.97.97 0 01-.45 1.1 12.95 12.95 0 01-6.68 2.19zm-36.36 2.36c-3.42 8.19-3.85 16.84-.97 19.69l.08.09c1.26 1.18 3.62 1.82 6.68 1.82a38.27 38.27 0 0017.26-4.82c3.43-1.92 9.18-5.96 9.18-11.43a18.4 18.4 0 00-18.68-18.5c-5.93 0-10.89 6.79-13.55 13.15zm29.59-18.05c-.97-2.38-3.49-3.6-4.73-4.07-1.52 2.71-1.89 5.05-1.12 6.96.96 2.37 3.48 3.6 4.73 4.08 1.52-2.71 1.89-5.05 1.12-6.97zm5.5 7.13c-1.75.08-3.45.6-4.95 1.51.59 1.54 2.36 5.06 6.22 5.06 1.75-.08 3.45-.6 4.94-1.5-.59-1.55-2.36-5.07-6.21-5.07zm-13.43 13.54h3v3h-3zm-4-5h3v3h-3zm2 13h-3v-3h3zm-7-8h3v3h-3zm0-9h3v3h-3zm2 22h-3v-3h3zm-7-8h3v3h-3zm0-9h3v3h-3zm-5 14h3v3h-3zm0-9h3v3h-3z"/>
<path id="def-telegram-a" d="M823.8 272.93l-4.09 20.05c-.3 1.42-1.16 1.76-2.36 1.1l-6.52-4.77-3.13 3c-.55.47-.75.66-1.27.65-.5 0-.74-.3-1.03-1.1l-2.4-7.29-6.26-1.94c-1.01-.32-1.06-1.66.31-2.05l25.01-9.39c1.14-.52 2.18 0 1.74 1.74zm-17.39 18.55l.6-5.26 11.83-10.54c.31-.36.09-.88-.61-.42l-14.24 8.87z"/>
<path id="def-tm-a" d="M1406.46 346.34l13.28-8.34c.65-.44.86.05.57.39l-11.02 9.91-.57 4.96zm16.84-12.16l-23.32 8.83c-1.27.37-1.24 1.62-.3 1.93l5.84 1.82 2.24 6.86c.28.75.5 1.04.96 1.04.49 0 .67-.18 1.19-.62.58-.55 1.5-1.43 2.92-2.83l6.08 4.49c1.12.62 1.92.3 2.21-1.04l3.8-18.85c.41-1.63-.55-2.12-1.62-1.63z"/>
<path id="def-trash-a" d="M1175 9805h-1.09l-1.8 13.12a2.15 2.15 0 01-2.11 1.88h-8a2.14 2.14 0 01-2.1-1.88l-1.78-13.12H1157a1 1 0 010-2h5v-1a3 3 0 013-3h2a3 3 0 013 3v1h5a1 1 0 010 2zm-7-3a1 1 0 00-1-1h-2a1 1 0 00-1 1v1h4zm-7.87 3l1.75 12.9c.02.05.07.09.12.1h8c.06-.01.1-.05.12-.11l1.78-12.89zm6.87 3h2v6h-2zm-4 0h2v6h-2z"/>
<path id="def-triangle-a" d="M1238 6883l7.22 7.22 7.22-7.22z"/>
<path id="def-user-circle-a" d="M1265.24 30.18a10 10 0 01-2.18 10.9 6.94 6.94 0 00-4.7-4.69 5 5 0 10-4.66.01c-2.24.72-4 2.47-4.72 4.71a10 10 0 1116.26-10.93zm-6.22 1.82a3 3 0 11-6-.01 3 3 0 016 .01zm-8.3 10.48c.4-2.6 2.65-4.5 5.28-4.48 2.73 0 5.1 1.96 5.27 4.37l.03.09a9.9 9.9 0 01-10.57.02zM1256 46a12.01 12.01 0 000-24 12 12 0 100 24z"/>
<path id="def-vb-a" d="M955.45 276.38c.68 3.25.79 6.51-.02 9.76-.14.57-.36 1.11-.58 1.65-.84 2.05-2.5 3.13-4.57 3.73-1.63.48-3.31.69-5 .82-.89.07-2.29.03-3.18.02-.76-.01-.55-.04-1.04.45-.96.97-1.84 1.82-2.76 2.84a28 28 0 01-1.35 1.35v-4.93c0-.25-.07-.4-.3-.5-.26-.1-.5-.24-.75-.34a6.95 6.95 0 01-4.35-4.98 19.93 19.93 0 01-.51-6.16c.07-1.4.26-2.79.64-4.15a6.8 6.8 0 013.48-4.25 13.83 13.83 0 014.79-1.47 25.9 25.9 0 019.8.59 8.9 8.9 0 013.5 1.69 6.59 6.59 0 012.2 3.88zm-12.05-1.52c.54.04 1.07.15 1.6.28 1.98.5 3.52 1.53 4.32 3.43.42.99.63 2.02.7 3.08.02.27.15.42.43.42.27-.01.38-.19.39-.43.02-.21.01-.42.01-.64a7.41 7.41 0 00-1.39-4.12c-1.49-1.96-3.43-2.7-6-2.82-.31-.02-.49.1-.51.42-.01.31.21.36.45.38zm4.39 4.61c.11.4.21.81.26 1.22.03.27-.03.64.42.65.32.01.4-.13.43-.67a4.58 4.58 0 00-.68-2.46c-.96-1.52-2.37-2.16-4.16-2.32-.28-.03-.48.08-.52.37-.05.3.14.44.41.48.55.08 1.08.22 1.6.4a3.32 3.32 0 012.24 2.33zm-2.22-1.46a2.29 2.29 0 00-.89-.22c-.38.03-.58.19-.58.45.01.33.3.33.52.39l.27.06c.72.19 1.13.65 1.27 1.36.03.13.04.27.08.4.06.18.18.31.4.31.21-.01.34-.13.39-.32l.04-.35a2.4 2.4 0 00-1.5-2.08zm4.89 7.94c-.78-.65-1.6-1.25-2.47-1.78-1.02-.62-1.77-.45-2.47.49l-.11.14c-.32.39-.72.54-1.22.4a5.89 5.89 0 01-1.51-.74 6.76 6.76 0 01-2.77-3.19c-.35-.82-.19-1.35.54-1.88l.28-.2c.55-.45.68-.89.37-1.52a9.94 9.94 0 00-2.3-3.05 1.3 1.3 0 00-.97-.36 2.9 2.9 0 00-2.62 2.74c-.01.37.08.78.24 1.17 2.23 5.38 6.16 9.1 11.6 11.36.4.17.82.27 1.25.15a3.75 3.75 0 002.55-2.16c.28-.61.14-1.13-.39-1.57z"/>
<path id="def-ynadex-a" d="M471.93 10326.44h-.59c-.92 0-1.8-.64-1.8-2.24 0-1.67.83-2.35 1.68-2.35h.7v4.59zm.92-5.44h-1.6c-1.55 0-2.87 1.13-2.87 3.33 0 1.32.64 2.3 1.78 2.78l-2.13 3.68c-.07.12 0 .21.1.21h1c.08 0 .14-.03.17-.1l1.93-3.6h.7v3.6c0 .05.04.1.1.1h.86c.08 0 .11-.04.11-.1v-9.77c0-.09-.06-.13-.15-.13z"/>
<path id="def-ytube-a" d="M1343.37 349.72v-9.44l6.27 4.72zm-7.81-14.03a3.54 3.54 0 00-3.56 3.51v11.6a3.54 3.54 0 003.56 3.51h19.88a3.54 3.54 0 003.56-3.5V339.2a3.54 3.54 0 00-3.56-3.51h-19.88z"/>
</defs>
<symbol id="icon-arrow-chevron" viewBox="0 0 9 15"><path d="M7.07.862L0 7.93 7.072 15l1.06-1.06-6.011-6.01L8.13 1.922 7.07.862z"/></symbol>
<symbol id="icon-arrow-down" viewBox="0 0 8 5"><use xlink:href="#def-arrow-down-a" transform="translate(-223 -20813)"/></symbol>
<symbol id="icon-arrow-left" viewBox="0 0 18 12"><path d="M.1 6.3c-.1-.3 0-.6.1-.8l4.3-4.3c.3-.3.7-.3 1 0 .3.3.3.7 0 1l-3 3.1h14.1c.4 0 .7.3.7.7 0 .4-.3.7-.7.7H2.5l3.1 3.1c.3.3.3.8 0 1-.2.2-.3.2-.4.3-.2.1-.5 0-.7-.2L.2 6.6c-.1-.1-.1-.2-.1-.3z"/></symbol>
<symbol id="icon-arrow-menu" viewBox="0 0 10 5"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 0l5 5 5-5H0z"/></symbol>
<symbol id="icon-arrow-right" viewBox="0 0 15 12"><path d="M14.19 5.77c.11.26.05.57-.15.78l-4.32 4.33a.72.72 0 01-1.02 0 .72.72 0 010-1.02l3.09-3.1H.69A.72.72 0 010 6.04c0-.38.31-.7.69-.72h11.1L8.7 2.23a.73.73 0 01.33-1.21c.24-.06.51.01.69.19l4.32 4.32a.6.6 0 01.15.24z"/></symbol>
<symbol id="icon-arrow" viewBox="0 0 20 17"><use xlink:href="#def-arrow-a" transform="translate(-1033 -789)"/></symbol>
<symbol id="icon-be" viewBox="0 0 25 16"><use xlink:href="#def-be-a" transform="translate(-39 -27)"/></symbol>
<symbol id="icon-be2-mob" viewBox="0 0 34 34"><path d="M15.426 16.508s1.507-.112 1.507-1.879S15.7 12 14.138 12H9v9.875h5.138s3.137.099 3.137-2.915c0 0 .137-2.452-1.85-2.452zm-4.162-2.753h2.874s.699 0 .699 1.027c0 1.028-.411 1.177-.877 1.177h-2.696v-2.204zm2.742 6.365h-2.742v-2.64h2.874s1.041-.013 1.041 1.357c0 1.142-.761 1.271-1.173 1.283zM23.408 12.582h-4.074v1.216h4.074v-1.216zM21.458 14.513c-3.797 0-3.794 3.793-3.794 3.793s-.26 3.775 3.794 3.775c0 0 3.38.193 3.38-2.626H23.1s.058 1.062-1.584 1.062c0 0-1.737.116-1.737-1.718h5.116s.56-4.286-3.437-4.286zm1.545 2.968h-3.244s.213-1.522 1.738-1.522 1.506 1.522 1.506 1.522z"/></symbol>
<symbol id="icon-be2" viewBox="0 0 56 56"><path d="M27.475 27.946s1.987-.148 1.987-2.479c0-2.33-1.625-3.467-3.685-3.467H19v13.024h6.777s4.137.13 4.137-3.844c0 0 .18-3.234-2.439-3.234zm-5.489-3.631h3.791s.921 0 .921 1.355-.542 1.551-1.156 1.551h-3.556v-2.906zm3.616 8.394h-3.616v-3.48h3.79s1.374-.018 1.374 1.788c0 1.506-1.004 1.677-1.548 1.692zM38.004 22.767H32.63v1.604h5.373v-1.604zM35.432 25.314c-5.009 0-5.004 5.003-5.004 5.003s-.344 4.98 5.004 4.98c0 0 4.456.254 4.456-3.464h-2.292s.077 1.4-2.088 1.4c0 0-2.291.154-2.291-2.266h6.748s.738-5.653-4.533-5.653zm2.037 3.915H33.19s.28-2.008 2.291-2.008c2.013 0 1.987 2.008 1.987 2.008z"/></symbol>
<symbol id="icon-briefcase" viewBox="834 13519 48 44"><path d="M836.5 13563c-1.4 0-2.5-1.2-2.5-2.6v-19.4c0 .6.4 1 1 1h1v18.4c0 .3.2.6.5.6h42.9c.3 0 .5-.3.5-.6v-18.4h1c.6 0 1-.4 1-1s-.4-1-1-1h-1v-10.4c0-.3-.2-.5-.5-.6h-42.9c-.3 0-.5.3-.5.6v10.4h-1c-.6 0-1 .4-1 1v-11.4c0-1.4 1.1-2.5 2.5-2.6H849v1c0 .6.4 1 1 1s1-.4 1-1v-1h14v1c0 .6.4 1 1 1 .3 0 .5-.1.7-.3.2-.2.3-.4.3-.7v-1h12.5c1.4 0 2.5 1.2 2.5 2.6v30.9c0 1.4-1.1 2.6-2.5 2.6h-43zm18.4-21H836v-2h18.9c.6 0 1 .4 1 1s-.4 1-1 1zm25.1-2v2h-18.9c-.6 0-1-.4-1-1s.4-1 1-1H880zm-13-16.8c0-2.3-1.9-4.2-4.2-4.2h-9.6c-2.3 0-4.2 1.9-4.2 4.2v3.8h2v-3.8c0-1.2 1-2.2 2.2-2.2h9.6c1.2 0 2.2 1 2.2 2.2v3.8h2v-3.8z"/><clipPath id="def-briefcase-b"><use xlink:href="#def-briefcase-a" overflow="visible"/></clipPath><g clip-path="url(#def-briefcase-b)"><path stroke-width="4" stroke-miterlimit="50" d="M855 13538c0-1.7 1.3-3 3-3s3 1.3 3 3v7c0 1.7-1.3 3-3 3s-3-1.3-3-3v-7z"/></g></symbol>
<symbol id="icon-burger" viewBox="0 0 20 14"><g fill-rule="evenodd"><path d="M0 0h20v2H0zM0 6h20v2H0zM0 12h20v2H0z"/></g></symbol>
<symbol id="icon-cancel-circle" viewBox="0 0 24 24"><path d="M12 24a12 12 0 110-24 12 12 0 010 24zm0-22a10 10 0 100 20 10 10 0 000-20zm4.71 13.29L13.41 12l3.3-3.29a1 1 0 00-.02-1.4 1 1 0 00-1.4-.02L12 10.59l-3.29-3.3a1 1 0 00-1.4.02 1 1 0 00-.02 1.4l3.3 3.29-3.3 3.29a1 1 0 00.02 1.4 1 1 0 001.4.02l3.29-3.3 3.29 3.3a1 1 0 001.42 0 1 1 0 000-1.42z"/></symbol>
<symbol id="icon-clip" viewBox="0 0 25 22"><path d="M12.1 21.37a1.02 1.02 0 01-.71-1.73L21.74 9.11a4.19 4.19 0 000-5.87 4.04 4.04 0 00-5.78 0l-12 12.21c-.59.49-.94 1.2-.97 1.97.05.49.28.95.63 1.29.31.35.77.53 1.23.48.74-.17 1.4-.57 1.89-1.15l9.42-9.58a.98.98 0 011.41 0c.39.4.39 1.04 0 1.44l-9.42 9.58A5.3 5.3 0 015.1 21.2a3.37 3.37 0 01-2.89-1.05A4.16 4.16 0 011 17.54a4.62 4.62 0 011.55-3.53l12-12.2a6.03 6.03 0 018.6 0 6.24 6.24 0 010 8.74L12.8 21.07a.98.98 0 01-.7.3z"/></symbol>
<symbol id="icon-clock" viewBox="0 0 24 24"><path d="M0 12a12 12 0 1124 0 12 12 0 01-24 0zm2 0a10 10 0 1020 0 10 10 0 00-20 0zm14 5a1 1 0 00.71-1.71L13 11.59V5a1 1 0 00-1-1 1 1 0 00-1 1v7a1 1 0 00.08.38c.05.12.12.24.21.33l4 4c.19.18.45.29.71.29z"/></symbol>
<symbol id="icon-close-menu" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.636 2.303L13.97.636 8.136 6.469 2.303.636.636 2.303 6.47 8.136.636 13.97l1.667 1.667 5.833-5.833 5.833 5.833 1.667-1.666-5.833-5.834 5.833-5.833z"/></symbol>
<symbol id="icon-close" viewBox="0 0 16 15"><g fill-rule="evenodd"><path d="M1.963.045l13.791 12.86-1.364 1.463L.6 1.508z"/><path d="M14.39.045L.6 12.905l1.364 1.463 13.79-12.86z"/></g></symbol>
<symbol id="icon-comments" viewBox="0 0 16 16"><use xlink:href="#def-comments-a" transform="translate(-748 -8949)"/></symbol>
<symbol id="icon-eaye" viewBox="0 0 16 11"><use xlink:href="#def-eaye-a" transform="translate(-614 -8951)"/></symbol>
<symbol id="icon-fb" viewBox="0 0 13 25"><path d="M8.44 25V13.6h3.83l.58-4.45H8.44V6.31c0-1.28.36-2.16 2.2-2.16H13V.18A29.7 29.7 0 009.57 0c-3.4 0-5.73 2.07-5.73 5.87v3.28H0v4.45h3.84V25z"/></symbol>
<symbol id="icon-fb2-mob" viewBox="0 0 34 34"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.415 24.638v-7.131h2.457l.366-2.784h-2.823v-1.776c0-.8.23-1.351 1.411-1.351h1.514v-2.49A21.931 21.931 0 0019.14 9c-2.182 0-3.677 1.295-3.677 3.672v2.051H13v2.784h2.463v7.13h2.952z"/></symbol>
<symbol id="icon-fb2" viewBox="0 0 56 56"><path fill-rule="evenodd" clip-rule="evenodd" d="M30.142 38.625V29.22h3.24l.483-3.671H30.14v-2.343c0-1.056.305-1.782 1.862-1.782H34V18.14a28.937 28.937 0 00-2.902-.14c-2.877 0-4.849 1.708-4.849 4.843v2.706H23v3.671h3.25v9.405h3.892z"/></symbol>
<symbol id="icon-file" viewBox="0 0 24 20"><use xlink:href="#def-file-a" transform="translate(-491 -9437)"/></symbol>
<symbol id="icon-github-mob" viewBox="0 0 34 34"><path d="M17.2 10c-3.978 0-7.2 3.307-7.2 7.386 0 3.263 2.063 6.031 4.923 7.007.36.07.492-.16.492-.355 0-.175-.006-.64-.009-1.256-2.003.445-2.425-.99-2.425-.99-.328-.853-.801-1.081-.801-1.081-.652-.458.05-.449.05-.449.723.052 1.103.761 1.103.761.642 1.13 1.685.803 2.097.615.065-.478.25-.803.456-.988-1.599-.185-3.28-.82-3.28-3.65 0-.806.28-1.464.741-1.981-.08-.187-.324-.938.063-1.955 0 0 .603-.198 1.98.757a6.754 6.754 0 011.8-.25 6.754 6.754 0 011.8.25c1.368-.955 1.971-.757 1.971-.757.387 1.017.144 1.768.072 1.955.46.517.738 1.175.738 1.981 0 2.838-1.683 3.462-3.285 3.644.252.222.486.674.486 1.366 0 .989-.009 1.783-.009 2.023 0 .193.126.424.495.35 2.881-.969 4.942-3.739 4.942-6.997 0-4.079-3.224-7.386-7.2-7.386z"/></symbol>
<symbol id="icon-github" viewBox="0 0 56 56"><path d="M27.913 19C22.436 19 18 23.362 18 28.741c0 4.305 2.84 7.955 6.778 9.242.496.092.677-.21.677-.468 0-.232-.008-.844-.012-1.657-2.758.588-3.34-1.306-3.34-1.306-.45-1.125-1.102-1.425-1.102-1.425-.898-.604.07-.592.07-.592.995.068 1.518 1.004 1.518 1.004.884 1.49 2.32 1.059 2.887.81.09-.63.344-1.059.628-1.302-2.202-.244-4.515-1.082-4.515-4.814 0-1.063.384-1.932 1.02-2.614-.112-.246-.446-1.236.086-2.578 0 0 .83-.26 2.727.999a9.676 9.676 0 012.478-.329 9.676 9.676 0 012.478.329c1.883-1.26 2.714-.999 2.714-.999.532 1.342.198 2.332.099 2.578a3.737 3.737 0 011.016 2.614c0 3.742-2.317 4.566-4.523 4.805.347.293.67.89.67 1.803 0 1.303-.013 2.35-.013 2.667 0 .255.173.56.681.463 3.966-1.279 6.804-4.932 6.804-9.23 0-5.38-4.439-9.741-9.913-9.741z"/></symbol>
<symbol id="icon-gplus" viewBox="0 0 13 8"><use xlink:href="#def-gplus-a" transform="translate(-466 -10165)"/><use xlink:href="#def-gplus-b" transform="translate(-466 -10165)"/></symbol>
<symbol id="icon-head" viewBox="0 0 54 45"><g transform="translate(2 2)" fill-rule="evenodd"><path d="M9.23 19.458v17.61s14.232 8.328 28.462 0V19.231" fill-rule="nonzero"/><path stroke-width="3" fill-rule="nonzero" stroke-linecap="round" stroke-linejoin="round" d="M46.923 13.25L22.99 0 0 14.007l23.179 13.44L46.923 13.25V30"/><path d="M9.23 19.458v17.61s14.232 8.328 28.462 0V19.231" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/><circle stroke-width="3" fill-rule="nonzero" stroke-linecap="round" stroke-linejoin="round" cx="47.308" cy="32.692" r="2.692"/><path d="M32.733 18.745c.53.295 1.074.575 1.604.87 1.302.7 2.468-1.164 1.181-1.865-3.694-1.99-7.403-3.98-11.097-5.957-.53-.294-1.075-.575-1.604-.869-1.302-.7-2.468 1.163-1.181 1.864 3.694 1.99 7.403 3.981 11.097 5.957zM36.733 15.745c.53.295 1.074.575 1.604.87 1.302.7 2.468-1.164 1.181-1.865a4281.61 4281.61 0 00-11.097-5.957c-.53-.294-1.075-.575-1.604-.869-1.302-.7-2.468 1.163-1.181 1.864 3.694 1.99 7.403 3.981 11.097 5.957z" fill-rule="nonzero"/></g></symbol>
<symbol id="icon-inst" viewBox="0 0 26 26"><use xlink:href="#def-inst-a" transform="translate(-1468 -332)"/><use xlink:href="#def-inst-b" transform="translate(-1468 -332)"/><use xlink:href="#def-inst-c" transform="translate(-1468 -332)"/></symbol>
<symbol id="icon-instagram-mob" viewBox="0 0 34 34"><path fill-rule="evenodd" clip-rule="evenodd" d="M24.027 20.23a3.801 3.801 0 01-3.797 3.797h-6.433A3.801 3.801 0 0110 20.23v-6.433A3.801 3.801 0 0113.797 10h6.433a3.801 3.801 0 013.797 3.797v6.433zm-7.014-7.052a3.84 3.84 0 00-3.835 3.835 3.84 3.84 0 003.835 3.836 3.84 3.84 0 003.836-3.836 3.84 3.84 0 00-3.836-3.835zm0 6.848A3.016 3.016 0 0114 17.013 3.016 3.016 0 0117.013 14a3.016 3.016 0 013.013 3.013 3.016 3.016 0 01-3.013 3.013zm2.794-7.077c0-.625.509-1.133 1.133-1.133.625 0 1.134.508 1.134 1.133s-.509 1.134-1.134 1.134a1.135 1.135 0 01-1.133-1.134z"/></symbol>
<symbol id="icon-instagram" viewBox="0 0 56 56"><path fill-rule="evenodd" clip-rule="evenodd" d="M37.5 32.492a5.014 5.014 0 01-5.008 5.008h-8.484A5.014 5.014 0 0119 32.492v-8.484A5.014 5.014 0 0124.008 19h8.484a5.014 5.014 0 015.008 5.008v8.484zm-9.25-9.3a5.064 5.064 0 00-5.058 5.058c0 2.79 2.269 5.059 5.058 5.059 2.79 0 5.059-2.27 5.059-5.059 0-2.79-2.27-5.058-5.059-5.058zm0 9.032a3.978 3.978 0 01-3.974-3.974 3.978 3.978 0 013.974-3.974 3.978 3.978 0 013.974 3.974 3.978 3.978 0 01-3.974 3.974zm3.685-9.334c0-.825.67-1.495 1.494-1.495.825 0 1.495.67 1.495 1.495 0 .824-.67 1.495-1.495 1.495-.824 0-1.494-.67-1.494-1.495z"/></symbol>
<symbol id="icon-like-down" viewBox="0 0 20 22"><use xlink:href="#def-like-down-a" transform="translate(-995 -522)"/></symbol>
<symbol id="icon-like-up" viewBox="0 0 20 22"><use xlink:href="#def-like-up-a" transform="translate(-934 -520)"/></symbol>
<symbol id="icon-like" viewBox="0 0 16 16"><use xlink:href="#def-like-a" transform="translate(-687 -8946)"/></symbol>
<symbol id="icon-link" viewBox="0 0 19 21"><use xlink:href="#def-link-a" transform="translate(-624 -1161)"/><use xlink:href="#def-link-b" transform="translate(-624 -1161)"/></symbol>
<symbol id="icon-mail" viewBox="0 0 16 12"><use xlink:href="#def-mail-a" transform="translate(-1042 -260)"/><use xlink:href="#def-mail-b" transform="translate(-1042 -260)"/></symbol>
<symbol id="icon-minus-zoom" viewBox="0 0 26 2"><path stroke-linecap="square" stroke-miterlimit="50" stroke-width="2" d="M1.5 1h23.19"/></symbol>
<symbol id="icon-outside" viewBox="0 0 21 21"><use xlink:href="#def-outside-a" transform="translate(-1185 -9211)"/></symbol>
<symbol id="icon-pencil" viewBox="0 0 20 21"><use xlink:href="#def-pencil-a" transform="translate(-1185 -9800)"/></symbol>
<symbol id="icon-phone" viewBox="0 0 21 22"><use xlink:href="#def-phone-a" transform="translate(-716 -19)"/></symbol>
<symbol id="icon-play-circle" viewBox="0 0 24 24"><path d="M12 24a12 12 0 110-24 12 12 0 010 24zM2 12a10 10 0 1020 0 10 10 0 00-20 0z"/><path d="M11.01 14.52c-.05.28.1.55.35.67.25.13.55.07.74-.14l2.85-2.94c.26-.27.27-.7.02-.98l-2.83-2.94a.69.69 0 00-.75-.13.67.67 0 00-.38.65z"/></symbol>
<symbol id="icon-play-reviews" viewBox="0 0 9 9"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.074 4.507c0 .41-.745.741-.745.741l-5.854 2.91a.619.619 0 01-.563-.054.649.649 0 01-.294-.494V1.392A.586.586 0 01.895.853a.557.557 0 01.595.01l5.839 2.903s.745.331.745.741z"/></symbol>
<symbol id="icon-play" viewBox="0 0 17 17"><path d="M17 9.02c0 .88-1.6 1.59-1.6 1.59L2.84 16.86c-.4.16-.84.12-1.21-.12A1.4 1.4 0 011 15.68V2.33c-.03-.47.2-.92.6-1.16.39-.24.89-.23 1.27.02L15.4 7.43s1.6.71 1.6 1.59z"/></symbol>
<symbol id="icon-plus-zoom" viewBox="0 0 24 24"><path d="M23 13H13v10a1 1 0 01-1 1 1 1 0 01-1-1V13H1a1 1 0 01-1-1 1 1 0 011-1h10V1a1 1 0 011-1 1 1 0 011 1v10h10a1 1 0 011 1 1 1 0 01-1 1z"/></symbol>
<symbol id="icon-plus" viewBox="0 0 16 16"><use xlink:href="#def-plus-a" transform="translate(-1208 -4164)"/></symbol>
<symbol id="icon-search" viewBox="0 0 22 22"><use xlink:href="#def-search-a" transform="translate(-1083 -22)"/></symbol>
<symbol id="icon-shape" viewBox="0 0 48 38"><use xlink:href="#def-shape-a" transform="translate(-832 -13296)"/></symbol>
<symbol id="icon-share" viewBox="0 0 26 24"><path d="M21.03 8a3.95 3.95 0 01-3.02-1.41l-9.08 4.54c.12.55.13 1.11.02 1.66l9.06 4.61a3.98 3.98 0 11-.9 1.79l-9.05-4.61a4 4 0 11-.05-5.22l9.1-4.55A4 4 0 1121.03 8zm0 14a2 2 0 002-2 2 2 0 10-2 2zm-18-10a2 2 0 104 0 2 2 0 00-4 0zm16-8a2 2 0 104 0 2 2 0 00-4 0z"/></symbol>
<symbol id="icon-smile" viewBox="0 0 23 24"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 23.278c-6.351 0-11.5-5.148-11.5-11.5C0 5.427 5.149.278 11.5.278S23 5.427 23 11.778c-.005 6.35-5.15 11.495-11.5 11.5zm0-21.083a9.583 9.583 0 00-9.583 9.583 9.584 9.584 0 1019.167 0A9.599 9.599 0 0011.5 2.195zm-6.613 12.87a7.38 7.38 0 006.613 4.38 7.333 7.333 0 006.613-4.38.957.957 0 00-.93-1.427.96.96 0 00-.796.603 5.277 5.277 0 01-9.774 0 .959.959 0 00-1.726.824zm10.447-3.287a1.917 1.917 0 110-3.833 1.917 1.917 0 010 3.833zM5.75 9.862a1.917 1.917 0 103.833 0 1.917 1.917 0 00-3.833 0z"/></symbol>
<symbol id="icon-socials" viewBox="0 0 40 40"><g fill-rule="evenodd"><circle cx="20" cy="20" r="20"/><path d="M20.021 31h-.485C13.717 31 9 26.08 9 20.009c0-6.07 4.717-10.991 10.536-10.991.309-.024.619-.024.928 0 5.819 0 10.536 4.92 10.536 10.99C31 26.08 26.283 31 20.464 31h-.443zm0-2.198h.316c4.655 0 8.43-3.937 8.43-8.793s-3.775-8.793-8.43-8.793h-.632c-4.655 0-8.43 3.937-8.43 8.793s3.775 8.793 8.43 8.793h.316z"/><path d="M19.382 31C13.648 31 9 26.08 9 20.009c0-6.07 4.648-10.991 10.382-10.991.305-.024.61-.024.914 0 .252.02.488.138.665.33 5.385 5.95 5.385 15.338 0 21.29a.998.998 0 01-1.142.252.992.992 0 01-.437.11zm.322-19.784h-.238c-4.588 0-8.306 3.937-8.306 8.793s3.718 8.793 8.306 8.793a.981.981 0 01.26 0c4.23-5.007 4.23-12.58 0-17.586h-.022z" clip-rule="evenodd"/><path d="M19.91 30.967a1.101 1.101 0 01-.419-.077 1.101 1.101 0 01-1.21-.253c-5.708-5.95-5.708-15.337 0-21.288a1.1 1.1 0 01.704-.33 6.664 6.664 0 011.012 0C26.074 9.02 31 13.94 31 20.01S26.074 31 19.997 31l-.088-.033zm-.353-19.783a13.177 13.177 0 000 17.585c.091-.012.184-.012.275 0 4.861 0 8.802-3.936 8.802-8.792s-3.94-8.793-8.802-8.793h-.275z" clip-rule="evenodd"/><path d="M27.944 17H11.056C10.473 17 10 16.552 10 16s.473-1 1.056-1h16.888c.583 0 1.056.448 1.056 1s-.473 1-1.056 1zM27.944 25H11.056C10.473 25 10 24.552 10 24s.473-1 1.056-1h16.888c.583 0 1.056.448 1.056 1s-.473 1-1.056 1z"/></g></symbol>
<symbol id="icon-strawberry" viewBox="0 0 49 48"><use xlink:href="#def-strawberry-a" transform="translate(-832 -13406)"/></symbol>
<symbol id="icon-telegram" viewBox="0 0 29 24"><use xlink:href="#def-telegram-a" transform="translate(-795 -271)"/></symbol>
<symbol id="icon-telegram2-mob" viewBox="0 0 34 34"><path d="M14.95 19.329l-.25 3.528c.358 0 .514-.154.7-.34l1.683-1.607 3.486 2.553c.64.356 1.09.168 1.263-.588L24.12 12.15c.204-.946-.341-1.316-.964-1.084l-13.452 5.15c-.918.357-.904.869-.156 1.1l3.44 1.07 7.988-4.998c.375-.25.717-.112.436.137L14.95 19.33z"/></symbol>
<symbol id="icon-telegram2" viewBox="0 0 56 56"><path d="M25.848 30.985l-.331 4.653c.473 0 .678-.203.924-.447l2.22-2.121 4.598 3.367c.843.47 1.437.223 1.665-.776l3.018-14.143.001-.001c.268-1.247-.45-1.734-1.272-1.428L18.929 26.88c-1.211.47-1.193 1.145-.206 1.451l4.536 1.411 10.536-6.593c.495-.328.946-.146.575.182l-8.522 7.653z"/></symbol>
<symbol id="icon-tm" viewBox="0 0 26 22"><use xlink:href="#def-tm-a" transform="translate(-1399 -334)"/></symbol>
<symbol id="icon-trash" viewBox="0 0 20 21"><use xlink:href="#def-trash-a" transform="translate(-1156 -9799)"/></symbol>
<symbol id="icon-triangle" viewBox="0 0 16 8"><use xlink:href="#def-triangle-a" transform="translate(-1237 -6883)"/></symbol>
<symbol id="icon-tw" viewBox="0 0 18 15"><path d="M18 1.75c-.66.3-1.37.5-2.12.59A3.7 3.7 0 0017.5.27c-.71.43-1.5.74-2.34.91a3.68 3.68 0 00-6.39 2.56c0 .3.03.58.09.85A10.45 10.45 0 011.25.69 3.75 3.75 0 002.4 5.68a3.67 3.67 0 01-1.68-.47v.05a3.75 3.75 0 002.97 3.67 3.51 3.51 0 01-1.67.06 3.7 3.7 0 003.45 2.6A7.33 7.33 0 010 13.14a10.37 10.37 0 005.66 1.68c6.79 0 10.51-5.7 10.51-10.64l-.01-.49A7.35 7.35 0 0018 1.76z"/></symbol>
<symbol id="icon-twitter-mob" viewBox="0 0 34 34"><path d="M24.406 12.386a6.16 6.16 0 01-1.702.466 2.937 2.937 0 001.3-1.632c-.572.34-1.202.58-1.873.715a2.952 2.952 0 00-5.109 2.02c0 .233.02.458.068.672a8.36 8.36 0 01-6.087-3.089 2.957 2.957 0 00.908 3.947 2.917 2.917 0 01-1.335-.363v.032a2.967 2.967 0 002.366 2.902c-.24.066-.502.097-.774.097-.189 0-.38-.01-.56-.05a2.981 2.981 0 002.76 2.057 5.934 5.934 0 01-3.661 1.26c-.242 0-.475-.011-.707-.04a8.314 8.314 0 004.53 1.325c5.435 0 8.406-4.502 8.406-8.404 0-.13-.004-.257-.01-.382a5.89 5.89 0 001.48-1.533z"/></symbol>
<symbol id="icon-twitter" viewBox="0 0 56 56"><path d="M38 21.828c-.707.31-1.46.515-2.244.615a3.874 3.874 0 001.713-2.153 7.783 7.783 0 01-2.47.943 3.894 3.894 0 00-6.738 2.664c0 .308.026.605.09.887a11.025 11.025 0 01-8.028-4.074 3.922 3.922 0 00-.533 1.969 3.9 3.9 0 001.73 3.237 3.847 3.847 0 01-1.76-.48v.043a3.913 3.913 0 003.12 3.827 3.887 3.887 0 01-1.02.129c-.25 0-.502-.015-.738-.067.505 1.543 1.937 2.677 3.64 2.714a7.827 7.827 0 01-4.83 1.66c-.32 0-.626-.013-.932-.052a10.966 10.966 0 005.976 1.748c7.167 0 11.086-5.938 11.086-11.085a9.95 9.95 0 00-.014-.503A7.77 7.77 0 0038 21.828z"/></symbol>
<symbol id="icon-user-circle" viewBox="0 0 24 24"><use xlink:href="#def-user-circle-a" transform="translate(-1244 -22)"/></symbol>
<symbol id="icon-vb" viewBox="0 0 25 27"><use xlink:href="#def-vb-a" transform="translate(-931 -270)"/></symbol>
<symbol id="icon-view-list" viewBox="0 0 15 15"><path d="M0 6V0h15v6zm0 9V9h15v6z"/></symbol>
<symbol id="icon-view-tile" viewBox="0 0 15 15"><path d="M0 6V0h6v6zm9 0V0h6v6zm0 9V9h6v6zm-9 0V9h6v6z"/></symbol>
<symbol id="icon-vk" viewBox="0 0 22 14"><path d="M10.61 13.8h1.3s.39-.04.59-.27c.19-.2.18-.59.18-.59s-.02-1.8.78-2.07c.8-.26 1.82 1.75 2.91 2.52.81.58 1.44.46 1.44.46l2.89-.05s1.52-.09.8-1.33c-.06-.1-.42-.92-2.15-2.59-1.82-1.75-1.58-1.47.61-4.5 1.33-1.84 1.87-2.97 1.7-3.45-.16-.46-1.14-.34-1.14-.34l-3.26.02s-.24-.03-.42.08-.29.36-.29.36-.52 1.43-1.2 2.64c-1.46 2.57-2.04 2.7-2.27 2.54-.56-.37-.42-1.49-.42-2.28 0-2.49.36-3.52-.71-3.79A5.26 5.26 0 0010.43 1c-1.16-.01-2.15.01-2.7.29-.38.19-.66.61-.49.63.22.03.71.14.97.51.33.47.32 1.53.32 1.53s.19 2.92-.45 3.29c-.44.25-1.04-.26-2.34-2.59-.66-1.19-1.16-2.5-1.16-2.5s-.1-.25-.27-.38c-.21-.16-.5-.21-.5-.21l-3.1.02s-.47.01-.64.22c-.15.19-.01.58-.01.58s2.43 5.89 5.17 8.87c2.52 2.72 5.38 2.54 5.38 2.54z"/></symbol>
<symbol id="icon-vk2-mob" viewBox="0 0 34 34"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.79 21.913h.947a.77.77 0 00.436-.201.795.795 0 00.13-.459s-.016-1.399.573-1.608c.588-.209 1.336 1.351 2.13 1.954.297.259.68.383 1.063.346l2.123-.032s1.116-.073.589-1.03a7.642 7.642 0 00-1.582-2.002c-1.337-1.35-1.153-1.134.451-3.473.978-1.424 1.367-2.3 1.245-2.67a.866.866 0 00-.832-.257l-2.4.016a.463.463 0 00-.305.056.702.702 0 00-.214.282 15.134 15.134 0 01-.886 2.042c-1.062 1.978-1.49 2.082-1.665 1.962-.405-.29-.306-1.15-.306-1.77 0-1.913.268-2.717-.511-2.926a4.053 4.053 0 00-1.123-.12 4.804 4.804 0 00-1.987.225c-.275.144-.48.466-.351.49.273.03.524.167.703.386.165.37.246.774.237 1.182 0 0 .145 2.26-.329 2.54-.32.194-.764-.2-1.719-1.993a17.581 17.581 0 01-.848-1.938.803.803 0 00-.198-.29.84.84 0 00-.367-.16l-2.276.016a.723.723 0 00-.466.169.581.581 0 00-.016.442s1.788 4.559 3.805 6.859c.99 1.217 2.427 1.931 3.95 1.962z"/></symbol>
<symbol id="icon-vk2" viewBox="0 0 56 56"><path fill-rule="evenodd" clip-rule="evenodd" d="M28.274 34.074h1.25c.213-.024.413-.117.574-.265.117-.177.177-.39.172-.605 0 0-.02-1.845.755-2.12.776-.276 1.763 1.78 2.811 2.576.391.342.895.506 1.4.456l2.802-.042s1.47-.096.775-1.358a10.079 10.079 0 00-2.085-2.64c-1.763-1.782-1.522-1.495.594-4.582 1.29-1.877 1.804-3.033 1.642-3.52a1.143 1.143 0 00-1.098-.34l-3.163.021a.61.61 0 00-.403.075.925.925 0 00-.282.37 19.972 19.972 0 01-1.17 2.694c-1.4 2.61-1.964 2.747-2.196 2.588-.534-.382-.403-1.516-.403-2.333 0-2.524.353-3.584-.675-3.86a5.345 5.345 0 00-1.48-.16 6.336 6.336 0 00-2.62.298c-.363.19-.635.615-.464.646.36.039.691.221.927.51.218.487.325 1.02.312 1.558 0 0 .192 2.98-.433 3.352-.423.254-1.007-.265-2.267-2.63a23.184 23.184 0 01-1.118-2.556 1.06 1.06 0 00-.262-.382 1.109 1.109 0 00-.484-.212l-3.002.021a.953.953 0 00-.615.223.767.767 0 00-.02.583s2.358 6.013 5.018 9.046c1.305 1.606 3.2 2.548 5.209 2.588z"/></symbol>
<symbol id="icon-yandex" viewBox="0 0 5 11"><path d="M4.847 0H3.259C1.7 0 .376 1.169.376 3.438c0 1.36.64 2.364 1.783 2.86L.028 10.092c-.07.123 0 .22.111.22h.99c.083 0 .139-.028.166-.097L3.231 6.49h.697v3.726c0 .041.041.097.097.097h.864c.083 0 .111-.042.111-.11V.138C5 .04 4.944 0 4.847 0zm-.92 5.61h-.584c-.92 0-1.81-.66-1.81-2.31 0-1.719.835-2.42 1.684-2.42h.71v4.73z" fill-rule="nonzero"/></symbol>
<symbol id="icon-ynadex" viewBox="0 0 5 10"><use xlink:href="#def-ynadex-a" transform="translate(-468 -10321)"/></symbol>
<symbol id="icon-ytube" viewBox="0 0 27 20"><use xlink:href="#def-ytube-a" transform="translate(-1332 -335)"/></symbol>
</svg>
<div class="header-banner topBanner" data-type="header" style="display: block; position: sticky; top: 0; z-index: 999;">
<a data-source="224879" data-banner="226288" class="universal-notice js-universal-notice-notice universal-notice--webp universal-notice--bitrix universal-notice--active" href="https://skillbox.ru/sale/main/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_banners_header_all_all_skillbox" target="_blank" style="--banner-bg: #5927E9;--banner-color: #fff;--button-font-color: #000000;--button-bg-color: #FFFFFF;--banner-img-left: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_left/602754/f9ac17dd-a1d4-46c6-aa14-4f7b949defd1.png);--banner-img-left-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_left/602754/f9ac17dd-a1d4-46c6-aa14-4f7b949defd1.webp);--banner-img-center: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.png);--banner-img-center-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.webp);--banner-img-center-mobile: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.png);--banner-img-center-mobile-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.webp);--banner-img-right: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_right/602755/ad7a7fe5-b8d3-47a3-885b-51a7971c12a9.png);--banner-img-right-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_right/602755/ad7a7fe5-b8d3-47a3-885b-51a7971c12a9.webp);">
<span class="universal-notice__wrapper">
<b class="universal-notice__title">
Скидка до 55% и 3 курса в подарок
</b>
<span class="universal-timer js-universal-notice-timer js-universal-notice-active">
<span class="universal-timer__days js-universal-notice-days">2 дня</span>
<span class="js-universal-notice-hours">13</span>
:<span class="js-universal-notice-minutes">30</span>
:<span class="js-universal-notice-seconds">09</span>
</span>
<span class="universal-notice__button">Выбрать курс</span>
</span>
</a><script>
document.addEventListener('DOMContentLoaded', () => {
// Установите конечную дату
const deadline = new Date();
deadline.setDate(5);
deadline.setHours(0, 0, 0);
// Найдите элементы DOM
var timer = document.querySelector('.universal-timer');
const elDays = timer.querySelector('.js-universal-notice-days');
const elHours = timer.querySelector('.js-universal-notice-hours');
const elMinutes = timer.querySelector('.js-universal-notice-minutes');
const elSeconds = timer.querySelector('.js-universal-notice-seconds');
// Функция обновления таймера
const updateTimer = () => {
const now = new Date();
let diff = Math.max(0, deadline - now);
if (diff === 0) {
let lastDayOfMonth = new Date(now.getFullYear(), now.getMonth() + 1, 0);
let lastDay = lastDayOfMonth.getDate();
if (lastDay - now.getDate() < 4) {
deadline.setMonth(deadline.getMonth() + 1, 1);
} else {
deadline.setDate(deadline.getDate() + 4);
}
diff = Math.max(0, deadline - now);
}
// Time calculations for days, hours, minutes and seconds
var days = Math.floor(diff / (1000 * 60 * 60 * 24));
var hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)).toString();
var minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)).toString();
var seconds = Math.floor((diff % (1000 * 60)) / 1000).toString();
if (timer) {
let dayTitles = ['день', 'дня', 'дней'];
let daySuffix = dayTitles[(days % 100 > 4 && days % 100 < 20) ? 2 : [2, 0, 1, 1, 1, 2][days % 10 < 5 ? days % 10 : 5]]
elDays.innerHTML = days + ' ' + daySuffix;
elHours.innerHTML = hours.padStart(2, '0');
elMinutes.innerHTML = minutes.padStart(2, '0');
elSeconds.innerHTML = seconds.padStart(2, '0');
}
};
updateTimer();
const timerId = setInterval(updateTimer, 1000);
});
</script>
<style>@font-face{font-display:swap;font-family:Graphik;font-weight:500;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Graphik;font-weight:700;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Bold.woff2) format("woff2")}.universal-notice{position:sticky;z-index:5;top:0;box-sizing:border-box;text-decoration:none;display:none;justify-content:space-between;overflow:hidden;color:var(--banner-color);background-color:var(--banner-bg);font-family:Graphik,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:opacity .25s ease-in-out}.universal-notice--active{display:flex}.universal-notice--bitrix{z-index:1000}.universal-notice *,.universal-notice ::after,.universal-notice ::before{box-sizing:inherit}.universal-notice::after,.universal-notice::before{display:none;width:194px;height:56px;content:"";background-size:194px 56px;background-repeat:no-repeat}.universal-notice--no-webp::before{background-image:var(--banner-img-left)}.universal-notice--no-webp::after{background-image:var(--banner-img-right)}.universal-notice--webp::before{background-image:var(--banner-img-left-webp)}.universal-notice--webp::after{background-image:var(--banner-img-right-webp)}.universal-notice--new-design{position:static;margin:4px;border-radius:16px}.universal-notice--new-design::after,.universal-notice--new-design::before{width:166px;height:48px;background-size:166px 48px}.universal-notice__wrapper{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:12px;padding:12px;width:100%}.universal-notice--new-design .universal-notice__wrapper::after{height:48px}.universal-notice__title{font-weight:500;font-size:15px;line-height:16px}.universal-notice--new-design .universal-notice__title{font-size:14px;line-height:15px}.universal-timer{display:none;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500;font-size:24px;line-height:26px}.universal-notice--new-design .universal-timer{font-size:22px;line-height:24px}.universal-timer__days{margin-right:8px}.universal-notice__button{grid-column:2/3;padding:6px 16px;border-radius:6px;color:var(--button-font-color);background-color:var(--button-bg-color);font-weight:500;font-size:14px;line-height:20px}.universal-notice-sticky{position:fixed;z-index:5;top:0;left:0;width:100%;padding:11px 8px;color:var(--banner-color);background-color:var(--banner-bg);text-align:center;transition:transform .3s ease-in-out;will-change:transform;transform:translateY(-200%)}.universal-notice-sticky--show{transform:translateY(0)}@media (min-width:360px) and (max-width:0px){.universal-notice__wrapper{padding:0 12px;grid-template-columns:1fr 56px auto}.universal-notice__wrapper::after{grid-column:2/3;grid-row:1/2;width:100%;height:56px;background-size:cover;background-repeat:no-repeat;content:""}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 48px auto}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile-webp)}.universal-notice__button{grid-column:3/4}}@media (min-width:360px){.universal-notice__wrapper{padding:0 12px;grid-template-columns:1fr 56px auto}.universal-notice__wrapper::after{grid-column:2/3;grid-row:1/2;width:100%;height:56px;background-size:cover;background-repeat:no-repeat;content:""}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 48px auto}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile-webp)}.universal-notice__button{grid-column:3/4}}@media (min-width:768px){.universal-notice::before{background-position:right center;flex-shrink:0;display:block}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-webp)}}@media (min-width:768px) and (max-width:0px){.universal-notice::before{background-position:right center;flex-shrink:0;display:block}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-webp)}}@media (min-width:1024px){.universal-notice::after,.universal-notice::before{width:250px;height:72px;background-size:250px 72px}.universal-notice--new-design{height:64px;border-radius:32px}.universal-notice--new-design::after,.universal-notice--new-design::before{width:226px;height:64px;background-size:226px 64px}.universal-notice__wrapper{grid-template-columns:1fr 72px auto;grid-gap:24px;padding-right:16px;padding-left:24px}.universal-notice__wrapper::after{height:72px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px auto}.universal-notice--new-design .universal-notice__wrapper::after{height:64px}.universal-notice__title{font-size:24px;line-height:26px}.universal-notice--new-design .universal-notice__title{font-size:22px;line-height:24px}.universal-notice__button{padding:10px 24px;border-radius:8px}.universal-notice-sticky{padding:14px 24px}}@media (min-width:1024px) and (max-width:0px){.universal-notice::after,.universal-notice::before{width:250px;height:72px;background-size:250px 72px}.universal-notice--new-design{height:64px;border-radius:32px}.universal-notice--new-design::after,.universal-notice--new-design::before{width:226px;height:64px;background-size:226px 64px}.universal-notice__wrapper{grid-template-columns:1fr 72px auto;grid-gap:24px;padding-right:16px;padding-left:24px}.universal-notice__wrapper::after{height:72px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px auto}.universal-notice--new-design .universal-notice__wrapper::after{height:64px}.universal-notice__title{font-size:24px;line-height:26px}.universal-notice--new-design .universal-notice__title{font-size:22px;line-height:24px}.universal-notice__button{padding:10px 24px;border-radius:8px}.universal-notice-sticky{padding:14px 24px}}@media (min-width:1280px){.universal-notice::before{flex-shrink:1}.universal-notice::after{background-position:left center;display:block}.universal-notice__wrapper{grid-template-columns:1fr 72px minmax(202px,auto) auto;min-width:940px;max-width:1020px;padding-right:24px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px minmax(202px,auto) auto}.universal-timer.js-universal-notice-active{display:flex}.universal-notice__timer-nuxt{display:flex}.universal-notice__button{grid-column:4/5}}@media (min-width:1280px) and (max-width:0px){.universal-notice::before{flex-shrink:1}.universal-notice::after{background-position:left center;display:block}.universal-notice__wrapper{grid-template-columns:1fr 72px minmax(202px,auto) auto;min-width:940px;max-width:1020px;padding-right:24px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px minmax(202px,auto) auto}.universal-timer.js-universal-notice-active{display:flex}.universal-notice__timer-nuxt{display:flex}.universal-notice__button{grid-column:4/5}}@media (min-width:1400px) and (max-width:0px){.universal-notice::before{flex-shrink:0}.universal-notice::after{flex-shrink:0}}@media (min-width:1400px){.universal-notice::before{flex-shrink:0}.universal-notice::after{flex-shrink:0}}</style> </div>
<script>
document.addEventListener("DOMContentLoaded", function(event) {
window.TopBanner = true;
});
$(document).ready(function () {
$.ajax({
url: '/local/ajax/advert.php',
type: 'POST',
data: {
'type': 'top-banner-show',
'id': 226288,
'section_id': 0,
},
success: function (result) {
}
});
});
$(document).on('click', '.header-banner', function () {
$.ajax({
url: '/local/ajax/advert.php',
type: 'POST',
data: {
'type': 'top-banner-click',
'id': 226288,
'section_id': 0,
},
success: function (result) {
}
});
var page = window.location;
var $article = $('section[data-article-text]');
var pageId = $article.data('articleid');
if(pageId === undefined)
{
pageId = 0;
}
window.dataLayer.push({
'event': 'go_to_course',
'courseID': 226288,
'page': page,
'pageID': pageId
});
});
</script>
<header class="header">
<div id="menu" class="header__wrapper container">
<div class="header__logo link-active">
<a href="/media/" class="header__media-main-link">
<img src="/local/templates/media/images/logo/skillbox-media.svg" alt="Skillbox"/>
</a>
<a href="/media/code/" class="header__media-category-link">
<span class="header__media-category js-category ">Код</span>
</a>
</div>
<a href="/media/about-media/" v-if="!isMobile" rel="nofollow" class="menu-nav__link menu-nav__link--about" target="_blank" style="display: none">
Про медиа
</a>
<button v-if="!isMobile" v-show="!isMobile" rel="nofollow" class="toggle-menu header__toggle toggle-menu--course"
@click="openCourseMenu()"
:class="{ 'toggle-menu--active': isOpenCourseMenu }"
style="display: none">
Онлайн-курсы
<svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg"
:class="{
'animated-chevron--default': isOpenCourseMenu,
'animated-chevron--active animated-chevron--default': ! isOpenCourseMenu
}"
class="animated-chevron toggle-menu__arrow select-arrow select-arrow--small">
<line x1="6.48415" y1="5.92242" x2="11.4909" y2="10.9291" stroke="currentColor" stroke-width="1.78"
class=" animated-chevron__line animated-chevron__line1 animated-chevron__line1--default"></line>
<line x1="6.3701" y1="5.9224" x2="11.3768" y2="0.915678" stroke="currentColor" stroke-width="1.78"
class="animated-chevron__line"></line>
<line x1="1.36337" y1="10.9291" x2="6.3701" y2="5.9224" stroke="currentColor" stroke-width="1.78"
class="animated-chevron__line animated-chevron__line2 animated-chevron__line2--default"></line>
<line x1="1.47743" y1="0.915681" x2="6.48415" y2="5.9224" stroke="currentColor" stroke-width="1.78"
class="animated-chevron__line"></line>
</svg>
</button>
<a href="https://skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=button_main_skillbox&utm_term=mainskillbox" v-if="!isMobile" v-show="!isMobile" rel="nofollow" class="menu-nav__link menu-nav__link-ml0 menu-nav__link--main" target="_blank" style="display: none">
Главная Skillbox
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.9375 10.0618L9.9161 4.08203" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3.93811 3.93665H10.0631V10.0616" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<div v-if="isOpenCourseMenu && !isMobile" class="menu-block menu-block--desktop" @click="closeCourseMenu($event)" style="display: none">
<div class="menu-block__wrapper menu-block__wrapper--desktop">
<div class="menu-block__content vue-container">
<span class="menu-block__title">
Направления обучения
</span>
<ul class="menu-directions menu-block__direction">
<li class="menu-directions__item">
<a href="https://skillbox.ru/courses/?utm_source=media&utm_medium=button&utm_campaign=button_courses_all&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="All directions">
Все направления
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/code/?utm_source=media&utm_medium=button&utm_campaign=button_courses_code&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Code">
Программирование
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/design/?utm_source=media&utm_medium=button&utm_campaign=button_courses_design&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Design">
Дизайн
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/management?utm_source=media&utm_medium=button&utm_campaign=button_courses_management&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Management">
Управление
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/marketing?utm_source=media&utm_medium=button&utm_campaign=button_courses_marketing&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Marketing">
Маркетинг
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/games?utm_source=media&utm_medium=button&utm_campaign=button_courses_games&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="GameDev">
Игры
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/multimedia?utm_source=media&utm_medium=button&utm_campaign=button_courses_multimedia&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="">
Кино и Музыка
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/psychology?utm_source=media&utm_medium=button&utm_campaign=button_courses_psychology&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Психология
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/health?utm_source=media&utm_medium=button&utm_campaign=button_courses_health&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Здоровье
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/spo/?utm_source=media&utm_medium=button&utm_campaign=button_courses_spo&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Цифровой колледж
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/general-development/?utm_source=media&utm_medium=button&utm_campaign=button_courses_general-development&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Education">
Общее развитие
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/engineering/?utm_source=media&utm_medium=button&utm_campaign=button_courses_engineering&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="engineering">
Инженерия
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/english/?utm_source=media&utm_medium=button&utm_campaign=button_courses_english&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="english">
Английский язык
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/other/?utm_source=media&utm_medium=button&utm_campaign=button_courses_other&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Other">
Другое
</a>
</li>
</ul>
</div>
</div>
</div>
<div v-show="isOpenMenu" class="menu-block" @click="closeMenu($event)" style="display: none">
<div class="menu-block__wrapper">
<div class="menu-block__content vue-container">
<h2 class="menu-block__header">Редакции</h2>
<div class="tab-nav" data-tab-parent="" data-action="index">
<div class="tab-nav__item">
<a class="" data-tab-name="media_nav" data-section-id="0" data-code="All directions" href="/media/">
<img src="/local/templates/media/images/common/menu-icon-mobile-1.png" alt=""/>
Все
</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="/media/topic/history/">
<img src="/local/templates/media/images/common/menu-icon-mobile-19.png"
alt=""/>
Истории</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="8"
data-code="Design"
href="/media/design/">
<img src="/local/templates/media/images/common/menu-icon-mobile-2.png" alt=""/>
Дизайн</a>
</div>
<div class="tab-nav__item">
<a class="tab-active"
data-tab-name="media_nav"
data-section-id="10"
data-code="Code"
href="/media/code/">
<img src="/local/templates/media/images/common/menu-icon-mobile-3.png" alt=""/>
Код</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="18"
data-code="GameDev"
href="/media/gamedev/">
<img src="/local/templates/media/images/common/menu-icon-mobile-4.png" alt=""/>
Геймдев</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="21"
data-code="Business"
href="/media/business/">
<img src="/local/templates/media/images/common/menu-icon-mobile-9.png" alt=""/>
Бизнес</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="9"
data-code="Marketing"
href="/media/marketing/">
<img src="/local/templates/media/images/common/menu-icon-mobile-5.png" alt=""/>
Маркетинг</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="11"
data-code=""
href="/media/management/">
<img src="/local/templates/media/images/common/menu-icon-mobile-6.png" alt=""/>
Управление</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="29"
data-code=""
href="/media/cinemusic/">
<img src="/local/templates/media/images/common/menu-icon-mobile-22.png" alt=""/>
Кино</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="36"
data-code=""
href="/media/music/">
<img src="/local/templates/media/images/common/menu-icon-mobile-23.png" alt=""/>
Музыка</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="34"
data-code=""
href="/media/photo/">
<img src="/local/templates/media/images/common/menu-icon-mobile-20.png" alt=""/>
Проектная фотография</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="17"
data-code="Development"
href="/media/growth/">
<img src="/local/templates/media/images/common/menu-icon-mobile-7.png" alt=""/>
Развитие</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="33"
data-code=""
href="/media/health/">
<img src="/local/templates/media/images/common/menu-icon-mobile-16.png" alt=""/>
Здоровье</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="32"
data-code=""
href="/media/money/">
<img src="/local/templates/media/images/common/menu-icon-mobile-17.png" alt=""/>
Деньги</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="22"
data-code="Education"
href="/media/education/">
<img src="/local/templates/media/images/common/menu-icon-mobile-8.png" alt=""/>
Образование</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="31"
data-code=""
href="/media/edtech/">
<img src="/local/templates/media/images/common/menu-icon-mobile-11.png" alt=""/>
EdTech</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="30"
data-code=""
href="/media/corptrain/">
<img src="/local/templates/media/images/common/menu-icon-mobile-10.png" alt=""/>
Корп. обучение</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="35"
data-code=""
href="/media/skillbox-blog/">
<img src="/local/templates/media/images/common/menu-icon-mobile-21.png" alt=""/>
Блог Skillbox</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="https://skillbox.ru/media/glossary/">
<img src="/local/templates/media/images/common/menu-icon-mobile-18.png"
alt=""/>
Глоссарий</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="/media/topic/specials/">
<img src="/local/templates/media/images/common/menu-icon-mobile-13.png"
alt=""/>
Спецпроекты</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="https://skillbox.ru/course/career-guide-free/">
<img src="/local/templates/media/images/common/menu-icon-mobile-15.png"
alt=""/>
Профориентация</a>
</div>
</div>
<h2 class="menu-block__header">Онлайн-курсы</h2>
<ul class="menu-directions menu-block__direction">
<li class="menu-directions__item">
<a href="https://skillbox.ru/courses/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="All directions">
Все направления
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/code/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Code">
Программирование
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/design/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Design">
Дизайн
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/marketing/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Marketing">
Маркетинг
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/management/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Management">
Управление
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/games/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="GameDev">
Игры
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/multimedia/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="">
Мультимедиа
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/psychology/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Психология
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/general-development/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Education">
Общее развитие
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/engineering/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="engineering">
Инженерия
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/english/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="english">
Английский язык
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/other/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Other">
Другое
</a>
</li>
</ul>
<a href="/media/about-media/" rel="nofollow" class="menu-nav__link">
Про медиа
</a>
<a href="https://skillbox.ru/" rel="nofollow" class="menu-nav__link">
Главная Skillbox
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.9375 10.0618L9.9161 4.08203" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3.93811 3.93665H10.0631V10.0616" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</div>
</div>
</div>
<button v-if="isMobile" class="menu-toggle"
@click="openMenu()"
:class="{ 'menu-toggle--opened': isOpenMenu }" style="opacity: 0">
<span v-if="isOpenMenu" class="menu-toggle__line"></span>
<svg v-if="!isOpenMenu" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M24 5.5H0V4H24V5.5ZM24 11.5H0V13H24V11.5ZM24 19H0V20.5H24V19Z" fill="black"/>
</svg>
</button>
</div>
<script>
BX.Vue.create({
el: '#menu',
data: {
isOpenMenu: false,
isOpenCourseMenu: false,
isMobile: false,
isSubOpen: false,
display: 'none'
},
computed: {
isMobile() {
const w = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
return w < 1024;
}
},
methods: {
openMenu() {
this.isOpenMenu = !this.isOpenMenu;
document.getElementsByTagName('body')[0].classList.toggle('scroll-locked');
window.addEventListener('keyup', this.closeMenu);
},
closeMenu(event) {
if (event.target.classList.contains('menu-block') || event.keyCode === 27) {
this.isOpenMenu = false;
document.getElementsByTagName('body')[0].classList.remove('scroll-locked');
window.removeEventListener('keyup', this.closeMenu);
}
},
openCourseMenu() {
this.isOpenCourseMenu = !this.isOpenCourseMenu;
if (this.isOpenCourseMenu) {
document.getElementsByTagName('body')[0].classList.add('scroll-locked');
window.addEventListener('keyup', this.closeCourseMenu);
} else {
document.getElementsByTagName('body')[0].classList.remove('scroll-locked');
window.removeEventListener('keyup', this.closeCourseMenu);
}
},
closeCourseMenu(event) {
if (event.target.classList.contains('menu-block') || event.keyCode === 27) {
this.isOpenCourseMenu = false;
document.getElementsByTagName('body')[0].classList.remove('scroll-locked');
window.removeEventListener('keyup', this.closeCourseMenu);
}
},
openSub() {
this.isSubOpen = !this.isSubOpen;
},
isMobileFn() {
const w = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
this.isMobile = (w < 1024);
}
},
created() {
window.addEventListener("resize", this.isMobileFn);
document.querySelector('.menu-block').style.display = '';
document.querySelector('.menu-toggle').style.opacity = '1';
document.querySelector('.menu-nav__link').style.display = '';
this.display = 'block';
this.isMobileFn();
},
destroyed() {
window.removeEventListener("resize", this.isMobileFn);
}
});
</script>
</header>
<main class="content">
<div class="page style-update">
<div class="page-wrap">
<style>
.article-inner .rr-widget__title {
padding-top: 0 !important;
}
.article-inner div[data-retailrocket-markup-block] {
margin-top: -32px;
display: none;
}
.article-inner {
font-family: 'Graphik';
}
</style>
<div class="under_header_banner" data-type="under_header"><!-- Yandex.RTB R-A-13443663-10 -->
<div id="yandex_rtb_R-A-13443663-10"></div>
<script>
window.yaContextCb.push(() => {
Ya.Context.AdvManager.render({
"blockId": "R-A-13443663-10",
"renderTo": "yandex_rtb_R-A-13443663-10"
})
})
</script>
</div> <div data-area="article" data-title="Math round, floor, ceil и trunc в JavaScript: руководство по округлению чисел в JS / Skillbox Media" class=" noFullClass">
<div class="article-inner">
<section class="top-section-detail-page ">
<div class="container">
<div class="article-preview-info">
<div class="article-preview-info__tags article-preview-info__tags--complex ">
<div class="tag article-preview-info__tag">
<a href="/media/code/"
class="tag-item programming">
Код </a>
<a href="/media/guide/"
class="tag-item">
Справочник по фронтенду
</a>
</div>
</div>
<a class="info-hashtag article-preview-info__hashtag" href="/media/topic/articles/">
#статьи </a>
<ul class="info article-preview__info-box">
<li class="info-item"> <time class="info-text" datatime="#">22 авг 2025</time></li>
<li class="info-item hidden">
<span class="info-icon"><img src="/local/templates/media/images/icons/like.svg" alt=""></span>
<span class="info__text js-article-like-value">0</span>
</li>
</ul>
</div>
<div class="row">
<div class="top-section-detail-page__title-block col-xl-9 col-lg-10">
<div class="article-preview">
<h1 class="article-preview__title">Math round, floor, ceil и trunc в JavaScript: руководство по округлению чисел в JS</h1>
<p class="article-preview__description">Подробно о методах округления в JavaScript: в меньшую и большую сторону, до целого, до сотых.</p>
</div>
</div>
</div>
</div>
</section>
<section data-article-text
data-articleId="224879"
data-courseId="3357"
>
<div class="container">
<noindex>
<div class="share" data-nosnippet>
<button class="share__handler-btn ">
<span class="share__handler-icon">
<svg width="11" height="12" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11 4.99902L6 0V2.99805C2.688 2.99805 0 5.68505 0 8.99805V11.498H0.0980225C0.765022 8.91205 3.107 6.99805 5.901 6.99805H6.00098V9.99805L11 4.99902Z" fill="currentColor"/>
</svg>
</span>
<span class="share__handler-text">Поделиться</span>
</button>
<div class="share__list">
<a href="#" class="share__item" data-code="vk">
<span class="share__item-icon share__item-icon--vk">
<svg width="9" height="5" viewBox="0 0 9 5" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.04776 4.98054H4.53996C4.62377 4.97136 4.70279 4.9361 4.76621 4.87951C4.81226 4.81209 4.83594 4.73139 4.83369 4.64925C4.83369 4.64925 4.82574 3.94629 5.1314 3.84125C5.43701 3.73621 5.826 4.51998 6.23879 4.82297C6.39281 4.95308 6.59128 5.01558 6.79053 4.99669L7.89399 4.98054C7.89399 4.98054 8.47355 4.94415 8.19965 4.46339C7.98372 4.08315 7.70589 3.743 7.37799 3.45744C6.68338 2.77872 6.77865 2.8878 7.61219 1.71216C8.12024 0.997077 8.32269 0.556717 8.25918 0.370875C8.14651 0.254767 7.98299 0.205914 7.82655 0.241594L6.58018 0.249674C6.52565 0.241067 6.46984 0.251007 6.42141 0.277954C6.37298 0.314507 6.33466 0.363228 6.31025 0.419356C6.18259 0.772814 6.0287 1.11586 5.8498 1.44552C5.29807 2.43936 5.07579 2.49188 4.98451 2.43128C4.77416 2.28584 4.82574 1.85356 4.82574 1.54248C4.82574 0.580957 4.96468 0.176954 4.55979 0.0719133C4.36879 0.0254376 4.17259 0.00505841 3.97631 0.0113129C3.62834 -0.0214164 3.27745 0.017045 2.94429 0.124433C2.8014 0.197154 2.69423 0.358753 2.76171 0.370875C2.90334 0.385518 3.03406 0.454932 3.12688 0.564795C3.21268 0.750336 3.25481 0.953675 3.24993 1.15868C3.24993 1.15868 3.32535 2.29392 3.07925 2.43532C2.91254 2.53228 2.68232 2.33432 2.18616 1.4334C2.01958 1.11848 1.87243 0.793298 1.74557 0.459754C1.72231 0.404013 1.68704 0.354309 1.64236 0.314316C1.58589 0.272672 1.52066 0.245006 1.45184 0.233514L0.268986 0.241594C0.181167 0.241154 0.0958013 0.271066 0.0268587 0.326434C-0.00595087 0.396174 -0.00882613 0.476652 0.0189202 0.548633C0.0189202 0.548633 0.947737 2.83932 1.99563 3.99477C2.51 4.60651 3.2568 4.96526 4.04776 4.98054Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Vkontakte</span>
</a>
<a href="#" class="share__item" data-code="tw">
<span class="share__item-icon share__item-icon--tw">
<svg width="9" height="7" viewBox="0 0 9 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.52788 0.00144284V0H5.9158L6.05754 0.027414C6.15204 0.0452114 6.23783 0.068535 6.31491 0.0973918C6.39201 0.126249 6.46661 0.159917 6.53872 0.198391C6.61083 0.236864 6.67623 0.276066 6.73492 0.315982C6.79311 0.355422 6.84533 0.397265 6.89158 0.441509C6.93733 0.486237 7.0087 0.49778 7.10568 0.476138C7.20266 0.454495 7.3071 0.424433 7.419 0.38596C7.5309 0.347487 7.64156 0.304201 7.75097 0.256104C7.86039 0.208007 7.92703 0.177469 7.95091 0.164484C7.97428 0.151022 7.98671 0.143808 7.98821 0.142841L7.98969 0.140677L7.99715 0.13707L8.00461 0.133463L8.01207 0.129856L8.01953 0.126249L8.02102 0.124084L8.02326 0.122642L8.02551 0.121199L8.02699 0.119034L8.03445 0.11687L8.04191 0.115427L8.04043 0.126249L8.03818 0.13707L8.03445 0.147891L8.03072 0.158713L8.02699 0.165927L8.02326 0.173141L8.01953 0.183962C8.01705 0.191176 8.01456 0.200793 8.01207 0.212819C8.00959 0.224845 7.98596 0.272935 7.9412 0.357103C7.89644 0.441271 7.84049 0.526637 7.77335 0.613208C7.70621 0.699778 7.64604 0.765182 7.59283 0.809434C7.53911 0.854162 7.50355 0.885421 7.48614 0.903219C7.46874 0.921492 7.4476 0.938323 7.42273 0.953718L7.38543 0.977525L7.37797 0.981132L7.37051 0.984739L7.36902 0.986903L7.36678 0.988346L7.36454 0.989789L7.36305 0.991953L7.35559 0.99556L7.34813 0.999168L7.34664 1.00133L7.3444 1.00277L7.34216 1.00422L7.34067 1.00638L7.33918 1.00855L7.33694 1.00999L7.3347 1.01143L7.33321 1.0136H7.37051L7.57939 0.970311C7.71865 0.941454 7.85168 0.906588 7.9785 0.865705L8.17992 0.800777L8.2023 0.793563L8.21349 0.789956L8.22095 0.786348L8.22841 0.782741L8.23587 0.779134L8.24333 0.775527L8.25825 0.773363L8.27317 0.77192V0.786348L8.26944 0.787791L8.26571 0.789956L8.26423 0.79212L8.26198 0.793563L8.25974 0.795006L8.25825 0.79717L8.25677 0.799334L8.25452 0.800777L8.25228 0.80222L8.25079 0.804384L8.24931 0.806548L8.24706 0.807991L8.24333 0.815205L8.2396 0.82242L8.23736 0.823862C8.23637 0.825305 8.20479 0.866181 8.14262 0.946504C8.08046 1.0273 8.04689 1.06818 8.04191 1.06915C8.03694 1.07059 8.02997 1.0778 8.02102 1.09079C8.01257 1.10425 7.95985 1.15788 7.86287 1.25166C7.76589 1.34545 7.67091 1.42889 7.57791 1.502C7.48441 1.57558 7.43716 1.666 7.43616 1.77325C7.43467 1.88002 7.42895 2.00074 7.419 2.13541C7.40905 2.27007 7.3904 2.41555 7.36305 2.57186C7.3357 2.72817 7.29342 2.90492 7.23623 3.10211C7.17904 3.29929 7.10941 3.49168 7.02735 3.67925C6.94529 3.86681 6.8595 4.03514 6.76998 4.18424C6.68046 4.33334 6.5984 4.45958 6.5238 4.56299C6.4492 4.66639 6.37336 4.76378 6.29626 4.85516C6.21918 4.94654 6.12171 5.04947 6.00384 5.16393C5.88547 5.27791 5.82082 5.34044 5.80988 5.3515C5.79844 5.36208 5.74971 5.40152 5.66365 5.46981C5.57812 5.53858 5.48611 5.60736 5.38763 5.67614C5.28966 5.74443 5.19964 5.80143 5.11758 5.84711C5.03552 5.8928 4.93655 5.94498 4.82067 6.00366C4.70529 6.06282 4.58046 6.11765 4.44618 6.16815C4.3119 6.21865 4.17016 6.26554 4.02096 6.30882C3.87176 6.35211 3.72753 6.38578 3.58827 6.40982C3.44903 6.43387 3.29112 6.45431 3.11456 6.47114L2.84973 6.49639V6.5H2.36483V6.49639L2.30142 6.49279C2.25915 6.49038 2.22433 6.48797 2.19698 6.48557C2.16963 6.48317 2.06643 6.46994 1.88739 6.44589C1.70835 6.42185 1.56785 6.3978 1.4659 6.37375C1.36395 6.34971 1.21225 6.30401 1.01083 6.23668C0.809413 6.16935 0.637087 6.10129 0.493854 6.03252C0.351121 5.96422 0.261601 5.92094 0.225293 5.90266C0.189485 5.88487 0.149201 5.86275 0.10444 5.83629L0.0373001 5.79661L0.0358156 5.79445L0.0335701 5.79301L0.0313321 5.79156L0.0298401 5.7894L0.0223801 5.78579L0.0149201 5.78219L0.0134355 5.78002L0.01119 5.77858L0.00895204 5.77714L0.00746003 5.77497L0.00597548 5.77281L0.00373001 5.77137H0V5.75694L0.00746003 5.75838L0.0149201 5.76054L0.0484902 5.76415C0.0708703 5.76655 0.131796 5.77016 0.231261 5.77497C0.330733 5.77978 0.436412 5.77978 0.548312 5.77497C0.660213 5.77016 0.774605 5.75934 0.891474 5.74251C1.00835 5.72568 1.14636 5.69682 1.30551 5.65594C1.46466 5.61505 1.61087 5.56648 1.74416 5.51021C1.87695 5.45346 1.97144 5.41114 2.02764 5.38324C2.08334 5.35583 2.16838 5.30484 2.28277 5.2303L2.45435 5.11848L2.45584 5.11632L2.45808 5.11487L2.46033 5.11343L2.46181 5.11127L2.4633 5.1091L2.46554 5.10766L2.46779 5.10622L2.46927 5.10405L2.47673 5.10189L2.48419 5.10044L2.48568 5.09323L2.48792 5.08602L2.49017 5.08457L2.49165 5.08241L2.43197 5.0788C2.39219 5.0764 2.35364 5.07399 2.31634 5.07159C2.27904 5.06918 2.2206 5.05836 2.14103 5.03912C2.06146 5.01988 1.97567 4.99103 1.88366 4.95255C1.79165 4.91408 1.70213 4.86838 1.6151 4.81548C1.52807 4.76258 1.46515 4.71857 1.42636 4.68346C1.38807 4.64883 1.33833 4.59978 1.27716 4.53629C1.21648 4.47233 1.16376 4.40668 1.119 4.33934C1.07424 4.27202 1.03148 4.19433 0.990699 4.10633L0.928774 3.97503L0.925044 3.96421L0.921314 3.95339L0.919076 3.94617L0.917584 3.93896L0.928774 3.9404L0.939964 3.94256L1.02202 3.95339C1.07674 3.9606 1.16253 3.963 1.27939 3.9606C1.39627 3.9582 1.47709 3.95339 1.52185 3.94617C1.56661 3.93896 1.59396 3.93414 1.60391 3.93174L1.61883 3.92814L1.63748 3.92453L1.65613 3.92092L1.65762 3.91876L1.65986 3.91731L1.6621 3.91587L1.66359 3.91371L1.64867 3.9101L1.63375 3.90649L1.61883 3.90289L1.60391 3.89928L1.58899 3.89567C1.57904 3.89327 1.56164 3.88846 1.53677 3.88124C1.5119 3.87403 1.44476 3.84757 1.33535 3.80189C1.22594 3.7562 1.1389 3.71171 1.07424 3.66842C1.00943 3.62501 0.947626 3.57754 0.889235 3.5263C0.831047 3.47436 0.767145 3.40751 0.697513 3.32575C0.627888 3.24399 0.565724 3.149 0.511012 3.04079C0.456308 2.93257 0.415277 2.82917 0.387922 2.73058C0.360676 2.63256 0.3427 2.53235 0.334217 2.43119L0.320781 2.27969L0.328241 2.28113L0.335701 2.2833L0.343161 2.2869L0.350621 2.29051L0.358081 2.29412L0.365541 2.29772L0.481172 2.34822C0.558264 2.38189 0.653998 2.41075 0.768383 2.43479C0.882775 2.45884 0.951154 2.47207 0.973534 2.47447L1.0071 2.47808H1.07424L1.07276 2.47592L1.07051 2.47447L1.06828 2.47303L1.06678 2.47087L1.0653 2.4687L1.06305 2.46726L1.06082 2.46582L1.05932 2.46365L1.05186 2.46004L1.0444 2.45644L1.04292 2.45427L1.04067 2.45283L1.03844 2.45139L1.03694 2.44922L1.02948 2.44562L1.02202 2.44201L1.02054 2.43984C1.01905 2.43888 0.99766 2.42349 0.956376 2.39367C0.915592 2.36337 0.872823 2.32418 0.828063 2.27608C0.783303 2.22798 0.738543 2.17749 0.693783 2.12458C0.64894 2.07156 0.609 2.01483 0.574422 1.95505C0.539614 1.89493 0.502806 1.81846 0.464014 1.72564C0.425721 1.6333 0.396627 1.54023 0.376731 1.44645C0.356843 1.35266 0.345653 1.26008 0.343161 1.1687C0.340677 1.07732 0.343161 0.999168 0.350621 0.93424C0.358081 0.869312 0.373001 0.795965 0.395382 0.714206C0.417762 0.632448 0.450093 0.545877 0.492362 0.454495L0.555772 0.317425L0.559502 0.306604L0.563232 0.295782L0.565478 0.29434L0.566962 0.292175L0.568454 0.290011L0.570692 0.288568L0.572938 0.290011L0.574422 0.292175L0.575914 0.29434L0.578152 0.295782L0.580398 0.297225L0.581882 0.29939L0.583374 0.301554L0.585612 0.302997L0.589342 0.310211L0.593072 0.317425L0.595318 0.318868L0.596802 0.321032L0.697513 0.429245C0.764653 0.501387 0.844229 0.581948 0.936234 0.670921C1.02825 0.759894 1.07922 0.806065 1.08916 0.809434C1.09912 0.813279 1.11154 0.824338 1.12646 0.842619C1.14138 0.860417 1.19112 0.902981 1.27567 0.970311C1.36022 1.03764 1.47087 1.1158 1.60764 1.20477C1.74441 1.29375 1.89609 1.38152 2.0627 1.46809C2.22931 1.55466 2.40835 1.63281 2.59982 1.70255C2.7913 1.77229 2.92558 1.81798 3.00266 1.83962C3.07975 1.86127 3.21154 1.88892 3.39804 1.92259C3.58454 1.95625 3.72505 1.9779 3.81954 1.98751C3.91403 1.99713 3.97869 2.00266 4.0135 2.00411L4.06572 2.00555L4.06423 1.99473L4.06199 1.98391L4.04707 1.89373C4.03712 1.83361 4.03215 1.74944 4.03215 1.64123C4.03215 1.53302 4.04085 1.43322 4.05826 1.34184C4.07567 1.25046 4.10178 1.15788 4.13659 1.0641C4.1714 0.970311 4.20547 0.895038 4.23879 0.838291C4.27261 0.78202 4.31687 0.717814 4.37158 0.645671C4.42629 0.573529 4.49716 0.498985 4.58419 0.422031C4.67122 0.345077 4.77069 0.276542 4.88259 0.216426C4.99449 0.15631 5.09769 0.110615 5.19218 0.0793563C5.28668 0.0480971 5.36625 0.0276521 5.4309 0.0180355C5.49556 0.00841898 5.52788 0.00288568 5.52788 0.00144284Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Twitter</span>
</a>
<a href="#" class="share__item" data-code="tg">
<span class="share__item-icon share__item-icon--tg">
<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.39589 3.04852C1.39589 3.04852 5.05491 1.51189 6.32392 0.9708C6.8104 0.754384 8.46012 0.0617918 8.46012 0.0617918C8.46012 0.0617918 9.22155 -0.241191 9.15809 0.494655C9.13692 0.797667 8.96773 1.85815 8.79854 3.00523C8.54472 4.62846 8.26976 6.40316 8.26976 6.40316C8.26976 6.40316 8.22746 6.90097 7.86791 6.98753C7.50836 7.0741 6.91613 6.68455 6.8104 6.59795C6.72577 6.53304 5.22411 5.5591 4.6742 5.08295C4.52614 4.9531 4.35695 4.6934 4.69533 4.39039C5.45676 3.67617 6.36622 2.78882 6.91613 2.2261C7.16995 1.96638 7.42374 1.36038 6.36622 2.09622C4.86456 3.15674 3.38403 4.15231 3.38403 4.15231C3.38403 4.15231 3.04561 4.36873 2.41111 4.17394C1.77657 3.97918 1.03631 3.71945 1.03631 3.71945C1.03631 3.71945 0.528726 3.39481 1.39589 3.04852Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Telegram</span>
</a>
<a href="#" class="share__item js-share-item-copy">
<span class="share__item-icon share__item-icon--copy">
<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.19922 5.40327C4.37217 5.63449 4.59283 5.8258 4.84622 5.96425C5.09962 6.10269 5.37982 6.18501 5.66783 6.20564C5.95584 6.22627 6.24492 6.18471 6.51546 6.08379C6.78599 5.98287 7.03166 5.82495 7.2358 5.62074L8.44399 4.41255C8.81079 4.03277 9.01375 3.52412 9.00917 2.99615C9.00458 2.46818 8.79281 1.96313 8.41946 1.58978C8.04611 1.21644 7.54106 1.00466 7.01309 1.00008C6.48512 0.995488 5.97647 1.19845 5.59669 1.56525L4.904 2.25392" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.81002 4.59658C5.63707 4.36536 5.41641 4.17404 5.16302 4.0356C4.90962 3.89716 4.62942 3.81483 4.34141 3.79421C4.0534 3.77358 3.76432 3.81514 3.49379 3.91605C3.22325 4.01697 2.97758 4.17489 2.77344 4.3791L1.56525 5.58729C1.19845 5.96707 0.995488 6.47572 1.00008 7.0037C1.00466 7.53167 1.21644 8.03672 1.58978 8.41006C1.96313 8.78341 2.46818 8.99518 2.99615 8.99977C3.52412 9.00436 4.03277 8.80139 4.41255 8.43459L5.10122 7.74592" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</span>
<span class="share__item-text">Скопировать ссылку</span>
</a>
</div>
</div> <!-- //share -->
</noindex>
<div class="row">
<div class="col-xl-9 col-lg-8 col-poster">
<div class="article-poster">
<picture >
<img src="https://248006.selcdn.ru/main/iblock/224/2246d5b28704978f3bc963d5e8d86aff/fe90cc0f0b7109836797bf38050ed7fd.png" itemprop='image' class='hidden-xs' />
</picture> <picture >
<img src="https://248006.selcdn.ru/main/iblock/224/2246d5b28704978f3bc963d5e8d86aff/fe90cc0f0b7109836797bf38050ed7fd.png" itemprop='image' class='visible-xs' />
</picture> </div>
<noindex>
<p class="article-poster-text" data-nosnippet>
Иллюстрация: Polina Vari для Skillbox Media </p>
</noindex>
</div>
<div class="col-xl-3 col-lg-4 col-author">
<div class="article-author">
<div class="article-author__image">
<a href="/media/authors/marina-demidova/">
<img src="https://248006.selcdn.ru/main/iblock/cb6/cb6749ac9ba3cfd7b9809271c4e58aa7/a0bfc97b59693fa3be8a20944adf770d.png" alt="Марина Демидова">
</a>
</div>
<div class="article-author__info">
<div class="article-author__name">
Марина Демидова </div>
<div class="article-author__description">
Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне. </div>
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="row flex-row-rev">
<div class="col-xl-3 col-lg-4 col-author">
<div class="js-article-banner" data-article-banner-mobile data-type="side_mounted" data-article-banner-sticky-start>
<!--AdFox START-->
<!--yandex_skillbox.media-->
<!--Площадка: Skillbox / Сквозной для застройщика Легенда / Боковой баннер сквозной для застройщика Легенда-->
<!--Категория: <не задана>-->
<!--Тип баннера: Media banner-->
<div id="adfox_176131540100027244"></div>
<script>
window.yaContextCb.push(()=>{
Ya.adfoxCode.create({
ownerId: 11649869,
containerId: 'adfox_176131540100027244',
params: {
p1: 'dkugb',
p2: 'p'
}
})
})
</script> </div>
<div class="js-article-banner" data-article-banner-mobile data-type="vertical" data-article-banner-sticky-end></div>
</div>
<div class="col-xl-9 col-lg-8 col-poster">
<div class="container container--setka">
<div class="js-article-banner" data-type="top"></div>
<div class="article-detail-text__setka" data-detail-text>
<div class="stk-post stk-layout_12col_18068 stk-theme_26309" data-stk="{"images":[]}" data-ui-id="post" data-ce-tag="post" data-reset-type="class" data-layout-type="auto" data-editor-version="3.2.8-rc1"><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><p class="stk-reset" data-ce-tag="paragraph">Округление чисел — одна из базовых операций в программировании. Казалось бы, округлить число несложно. Но на практике возникает много вопросов: какой метод использовать, как работают отрицательные числа, как избежать ошибок при округлении до нужного знака после запятой.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Содержание</strong></p><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-1">Особенности чисел в JavaScript</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-2">Что такое объект Math в JavaScript</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-3">Math.floor() — округление вниз</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-4">Math.ceil() — округление вверх</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-5">Math.round() — округление по правилам математики</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-6">Math.trunc() — отбрасывание дробной части<br></a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-7">Аргументы какого типа можно использовать в функциях округления</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-8">Как округлить число до заданного количества знаков после запятой</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-9">Примеры задач, в которых используются методы округления</a></li><li class="stk-reset stk-list-item" data-ce-tag="list-item"><a class="stk-reset" href="#stk-10">Типичные ошибки при округлении</a></li></ul><p class="stk-reset" data-ce-tag="paragraph">В JavaScript для округления используется объект <u class="stk-reset">Math</u>, в частности его методы <u class="stk-reset">Math.floor</u>, <u class="stk-reset">Math.ceil</u>, <u class="stk-reset">Math.round</u> и <u class="stk-reset">Math.trunc</u>. </p><p class="stk-reset" data-ce-tag="paragraph">Кроме этих, объект <u class="stk-reset">Math</u> содержит и другие полезные методы, которые часто используются вместе с округлением: <u class="stk-reset">Math.abs(x)</u> возвращает модуль числа, <u class="stk-reset">Math.random()</u> — случайное число от 0 до 1, <u class="stk-reset">Math.pow(x, y)</u> возводит число x в степень y, <u class="stk-reset">Math.sqrt(x)</u> возвращает квадратный корень из числа. О них и о других методах вы можете почитать в <a class="stk-reset" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math" target="_blank">документации</a>.</p><p class="stk-reset" data-ce-tag="paragraph">В этой статье мы разберём, как устроено округление в JavaScript, какие в нём есть тонкости и как применять эти знания на практике. </p><p class="stk-reset" data-ce-tag="paragraph">Но сначала немного поговорим о числах в JavaScript.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-1"><strong class="stk-reset">Особенности чисел в JavaScript</strong></h2><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">В JavaScript есть два типа чисел. Основной тип — это обычные целые и дробные числа. Они работают в диапазоне примерно от −9 квадриллионов до 9 квадриллионов (точнее — от −(2⁵³ − 1) до 2⁵³ − 1. Такие числа имеют тип <u class="stk-reset">number</u>.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> a = <span class="hljs-number" style="color: rgb(255, 115, 253);">5</span>; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Это number</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> b = <span class="hljs-number" style="color: rgb(255, 115, 253);">3.14</span>; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Тоже number</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> <span class="hljs-built_in">c</span> = -<span class="hljs-number" style="color: rgb(255, 115, 253);">100</span>; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// И это number</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">JavaScript использует для хранения таких чисел стандарт, который называется «числа с плавающей точкой двойной точности». Основной смысл в том, что числа хранятся в двоичной системе. Всё в порядке, пока речь идёт о целых числах, но некоторые десятичные дроби невозможно точно записать в двоичном виде — как в десятичной системе невозможно точно записать 1/3 (она превращается в 0,333...).</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Поэтому иногда при операциях возникают странности:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-number" style="color: rgb(255, 115, 253);">0.1</span> + <span class="hljs-number" style="color: rgb(255, 115, 253);">0.2</span> <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Результат: 0.30000000000000004</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Это не ошибка в JavaScript — так работает хранение чисел в любом языке программирования, который использует этот формат. Чтобы избежать ошибок, приходится округлять результат:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">Math.<span class="hljs-built_in">round</span>((<span class="hljs-number" style="color: rgb(255, 115, 253);">0.1</span> + <span class="hljs-number" style="color: rgb(255, 115, 253);">0.2</span>) * <span class="hljs-number" style="color: rgb(255, 115, 253);">100</span>) / <span class="hljs-number" style="color: rgb(255, 115, 253);">100</span> <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 0.3</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Сначала умножаем сумму на 100, чтобы избавиться от запятой, потом округляем и делим обратно.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Второй тип чисел встречается очень редко — это очень большие или очень маленькие числа, выходящие за пределы диапазона обычных чисел (больше чем 2⁵³ − 1 или меньше чем −(2⁵³ − 1)). Этот формат называется BigInt. Такие числа не могут быть дробными, только целыми. Выглядит он вот так:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">let <span class="hljs-keyword" style="color: rgb(150, 203, 254);">big </span>= <span class="hljs-number" style="color: rgb(255, 115, 253);">1234567890123456789012345678901234567890</span>n<span class="hljs-comment" style="color: rgb(124, 124, 124);">;</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Обратите внимание: в конце числа стоит буква <u class="stk-reset">n</u>. Так JavaScript понимает, что это число типа BigInt. </p><p class="stk-reset" data-ce-tag="paragraph">На практике BigInt нужен редко — в основном он применяется в криптографии. В этой статье мы на нём останавливаться не будем, а поговорим об округлении.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-2"><strong class="stk-reset">Что такое объект</strong> <strong class="stk-reset">Math</strong> <strong class="stk-reset">в JavaScript</strong></h2><p class="stk-reset" data-ce-tag="paragraph"><u class="stk-reset">Math</u> — это встроенный объект, который помогает работать с числами. Он умеет округлять числа, находить корень, получать случайные значения и многое другое.</p><p class="stk-reset" data-ce-tag="paragraph">В отличие от других объектов в JavaScript, нельзя использовать <u class="stk-reset">Math</u> как функцию или создавать из него копии. Например, вы не можете написать <u class="stk-reset">new Math()</u> — это вызовет ошибку.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">С объектом <u class="stk-reset">Math</u> можно работать только с помощью его свойств и методов — то есть уже готовых команд. Вот как это выглядит:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">Math<span class="hljs-selector-class">.round</span>(<span class="hljs-number" style="color: rgb(255, 115, 253);">1.7</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Округляет до ближайшего целого: 2</span>
Math<span class="hljs-selector-class">.random</span>(); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Возвращает случайное число от 0 до 1, например 0.42</span>
Math<span class="hljs-selector-class">.PI</span>; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Возвращает число π (пи): 3.141592653589793</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">В этой статье мы говорим только об умении <u class="stk-reset">Math</u> округлять числа.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-3"><strong class="stk-reset">Math.floor() — округление вниз</strong></h2><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset">Math.floor()</u> округляет число вниз — до ближайшего целого меньшего или равного значению. Он просто отбрасывает дробную часть и не прибавляет единицу, даже если число близко к следующему целому.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">Math<span class="hljs-selector-class">.floor</span>(<span class="hljs-number" style="color: rgb(255, 115, 253);">4.9</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 4</span>
Math<span class="hljs-selector-class">.floor</span>(<span class="hljs-number" style="color: rgb(255, 115, 253);">4.1</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 4</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Если число отрицательное, <u class="stk-reset">Math.floor()</u> всё равно округляет вниз — то есть к меньшему числу:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">Math<span class="hljs-selector-class">.floor</span>(-<span class="hljs-number" style="color: rgb(255, 115, 253);">4.1</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// -5</span>
Math<span class="hljs-selector-class">.floor</span>(-<span class="hljs-number" style="color: rgb(255, 115, 253);">4.9</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// -5</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Этот метод используют при расчёте количества страниц или порций — когда дробные части недопустимы.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Допустим, у вас 23 комментария, и на одной странице помещается 5. Сколько полных страниц вы можете отобразить?</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> <span class="hljs-attr">comments</span> = <span class="hljs-number" style="color: rgb(255, 115, 253);">23</span>;
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> <span class="hljs-attr">perPage</span> = <span class="hljs-number" style="color: rgb(255, 115, 253);">5</span>;
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> <span class="hljs-attr">pages</span> = Math.floor(comments / perPage); // <span class="hljs-number" style="color: rgb(255, 115, 253);">4</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Ответ — 4 страницы. На пятой осталось бы только 3 комментария, а метод <u class="stk-reset">Math.floor()</u> вернёт именно количество полностью заполненных страниц.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-4"><strong class="stk-reset">Math.ceil() — округление вверх</strong> </h2><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Округляет аргумент в сторону увеличения до ближайшего целого:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">Math<span class="hljs-selector-class">.ceil</span>(<span class="hljs-number" style="color: rgb(255, 115, 253);">4.1</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 5</span>
Math<span class="hljs-selector-class">.ceil</span>(-<span class="hljs-number" style="color: rgb(255, 115, 253);">4.1</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// -4</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Отрицательное число тоже округляется к большему значению — в сторону нуля.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">У вас 103 записи, и вы хотите выводить по 20 на страницу. Сколько страниц нужно, чтобы вместить всё.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> <span class="hljs-attr">totalItems</span> = <span class="hljs-number" style="color: rgb(255, 115, 253);">103</span>;
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> <span class="hljs-attr">perPage</span> = <span class="hljs-number" style="color: rgb(255, 115, 253);">20</span>;
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> <span class="hljs-attr">totalPages</span> = Math.ceil(totalItems / perPage); // <span class="hljs-number" style="color: rgb(255, 115, 253);">6</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Для размещения 103 записей понадобится 6 страниц.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-5"><strong class="stk-reset">Math.round() — округление по правилам математики</strong></h2><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset">Math.round()</u> округляет число по привычным школьным правилам:</p><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item">Если дробная часть меньше 0,5, округляется в меньшую сторону.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">Если 0,5 и больше — округляется в большую сторону.</li></ul><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">Math<span class="hljs-selector-class">.round</span>(<span class="hljs-number" style="color: rgb(255, 115, 253);">4.4</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 4</span>
Math<span class="hljs-selector-class">.round</span>(<span class="hljs-number" style="color: rgb(255, 115, 253);">4.5</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 5</span>
Math<span class="hljs-selector-class">.round</span>(-<span class="hljs-number" style="color: rgb(255, 115, 253);">4.5</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// -4</span>
Math<span class="hljs-selector-class">.round</span>(-<span class="hljs-number" style="color: rgb(255, 115, 253);">4.6</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// -5</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">При положительных числах всё довольно ожидаемо. А при отрицательных <u class="stk-reset">Math.round()</u> округляет в сторону нуля, если дробная часть равна 0,5.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Допустим, видео длится 95 секунд. Посчитаем, сколько это в минутах:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-built_in">let</span> seconds = <span class="hljs-number" style="color: rgb(255, 115, 253);">95</span>;
<span class="hljs-built_in">let</span> minutes = Math.<span class="hljs-built_in">round</span>(seconds / <span class="hljs-number" style="color: rgb(255, 115, 253);">60</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 2</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Результат — 2 минуты. Метод округлил 1,58 до ближайшего целого. Если бы видео длилось 89 секунд, получилась бы минута.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-6"><strong class="stk-reset">Math.trunc() — отбрасывание дробной части</strong></h2><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset">Math.trunc()</u> не округляет число, а просто убирает всё, что стоит после запятой. Он оставляет только целую часть — независимо от того, положительное число или отрицательное.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">Math<span class="hljs-selector-class">.trunc</span>(<span class="hljs-number" style="color: rgb(255, 115, 253);">4.9</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 4</span>
Math<span class="hljs-selector-class">.trunc</span>(-<span class="hljs-number" style="color: rgb(255, 115, 253);">4.9</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// -4</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Пример 1: координаты</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Пользователь мышкой рисует прямоугольник, координаты получаются дробными, но при отрисовке прямоугольника нужны целые числа.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> x = <span class="hljs-number" style="color: rgb(255, 115, 253);">99.999</span>;
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> y = <span class="hljs-number" style="color: rgb(255, 115, 253);">200.47</span>;
ctx.fillRect(Math.<span class="hljs-built_in">trunc</span>(x), Math.<span class="hljs-built_in">trunc</span>(y), <span class="hljs-number" style="color: rgb(255, 115, 253);">10</span>, <span class="hljs-number" style="color: rgb(255, 115, 253);">10</span>);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Прямоугольник рисуется в точке (99, 200)</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Мы используем <u class="stk-reset">Math.trunc()</u>, потому что в нашей программе координаты округляются только вниз.</p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Пример 2: логирование данных</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Допустим, программа вычисляет скидку −12,95. Для журнала аудита нужно сохранить только целую часть — без копеек.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> discount = <span class="hljs-number" style="color: rgb(255, 115, 253);">-12.95</span>;
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> intPart = Math.<span class="hljs-built_in">trunc</span>(discount); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// -12</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Так мы избавляемся от дробной части без округления и сохраняем грубое значение.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-7"><strong class="stk-reset">Аргументы какого типа можно использовать в функциях округления</strong></h2><p class="stk-reset" data-ce-tag="paragraph">Методы <u class="stk-reset">Math.round()</u>, <u class="stk-reset">Math.floor()</u>, <u class="stk-reset">Math.ceil()</u> и <u class="stk-reset">Math.trunc()</u> обычно работают с числами. Но JavaScript устроен гибко — если вы случайно (или специально) передаёте в них значение другого типа, движок попытается превратить его в число. Иногда это работает, иногда — нет. Если <u class="stk-reset">Math</u> не сможет привести аргумент к числу, он возвращает <u class="stk-reset">NaN</u>.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><u class="stk-reset">NaN</u> (сокращение от Not-a-Number) — это специальное значение в JavaScript, которое означает «не число». Оно появляется, когда операция с числами не может дать корректный результат, например:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-number" style="color: rgb(255, 115, 253);">0</span> / <span class="hljs-number" style="color: rgb(255, 115, 253);">0</span> <span class="hljs-comment" style="color: rgb(124, 124, 124);">// NaN — деление ноля на ноль</span>
Math.sqrt(-<span class="hljs-number" style="color: rgb(255, 115, 253);">1</span>) <span class="hljs-comment" style="color: rgb(124, 124, 124);">// NaN — нельзя извлечь корень из отрицательного числа</span>
<span class="hljs-function"><span class="hljs-title" style="color: rgb(255, 255, 182);">parseInt</span><span class="hljs-params">(<span class="hljs-string" style="color: rgb(168, 255, 96);">"abc"</span>)</span></span> <span class="hljs-comment" style="color: rgb(124, 124, 124);">// NaN — строка не может быть преобразована в число</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Давайте посмотрим, как ведут себя разные типы значений.</p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Строки</strong></h3><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">console.<span class="hljs-built_in">log</span>(Math.<span class="hljs-built_in">ceil</span>(<span class="hljs-string" style="color: rgb(168, 255, 96);">"abc"</span>)); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// NaN</span>
console.<span class="hljs-built_in">log</span>(Math.<span class="hljs-built_in">round</span>(<span class="hljs-string" style="color: rgb(168, 255, 96);">"11.15"</span>)); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 11</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Если в строке текст, результат будет <u class="stk-reset">NaN</u>. Строку с числом JavaScript сначала приводит к числу, а затем округляет. </p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Булевы значения (true, false)</strong></h3><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">console.<span class="hljs-built_in">log</span>(Math.<span class="hljs-built_in">ceil</span>(<span class="hljs-literal" style="color: rgb(198, 197, 254);">true</span>)); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 1</span>
console.<span class="hljs-built_in">log</span>(Math.<span class="hljs-built_in">round</span>(<span class="hljs-literal" style="color: rgb(198, 197, 254);">false</span>)); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 0</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Булевы значения <u class="stk-reset">true</u> и <u class="stk-reset">false</u> преобразуются в числа 1 и 0 соответственно.</p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Значения null, undefined, Nan</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Значение <u class="stk-reset">null</u> в JavaScript означает «пусто». Его можно задать вручную, если переменная пока ничего не хранит.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> value = <span class="hljs-built_in">null</span>;
console.<span class="hljs-built_in">log</span>(Math.<span class="hljs-built_in">ceil</span>(value)); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 0</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">При округлении <u class="stk-reset">null</u> логично превращается в 0.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Значение <u class="stk-reset">undefined</u> означает, что переменная есть, но в ней ничего не лежит. Это значение присваивается автоматически, если вы что-то объявили, но не задали.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">let <span class="hljs-keyword" style="color: rgb(150, 203, 254);">value</span>;
console.<span class="hljs-built_in">log</span>(Math.<span class="hljs-keyword" style="color: rgb(150, 203, 254);">round</span>(<span class="hljs-keyword" style="color: rgb(150, 203, 254);">value</span>)); // NaN</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Здесь переменная <u class="stk-reset">value</u> существует, но округлить её невозможно. Результат — <u class="stk-reset">NaN</u>.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Если вы попытаетесь округлить <u class="stk-reset">NaN</u>, результат снова будет <u class="stk-reset">NaN</u>:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">Math</span>.ceil(<span class="hljs-literal" style="color: rgb(198, 197, 254);">NaN</span>)); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// NaN</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Что будет, если округлять массив</strong></h3><p class="stk-reset" data-ce-tag="paragraph">В JavaScript даже массив можно округлить. Звучит странно, но иногда это работает.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Рассмотрим три примера:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">console.<span class="hljs-built_in">log</span>(Math.<span class="hljs-built_in">ceil</span>([<span class="hljs-number" style="color: rgb(255, 115, 253);">5.3</span>])); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 6</span>
console.<span class="hljs-built_in">log</span>(Math.<span class="hljs-built_in">round</span>([])); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 0</span>
console.<span class="hljs-built_in">log</span>(Math.<span class="hljs-built_in">ceil</span>([<span class="hljs-number" style="color: rgb(255, 115, 253);">1</span>, <span class="hljs-number" style="color: rgb(255, 115, 253);">5</span>])); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// NaN</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Массив <u class="stk-reset">[5.3]</u> сначала превращается в обычное число <u class="stk-reset">5.3</u>. После этого <u class="stk-reset">Math.ceil()</u> округляет его вверх, получается <u class="stk-reset">6</u>.</p><p class="stk-reset" data-ce-tag="paragraph">Пустой массив <u class="stk-reset">[]</u> превращается в <u class="stk-reset">0</u>. Поэтому результат округления — ноль.</p><p class="stk-reset" data-ce-tag="paragraph">В последнем массиве два значения: <u class="stk-reset">[1, 5]</u>. JavaScript не может понять, какое число имелось в виду. Поэтому результат — <u class="stk-reset">NaN</u>.</p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Рекомендация</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Если вы работаете с вводом от пользователя, всегда явно приводите его к числу перед округлением:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-built_in">let</span> inputValue = <span class="hljs-built_in">prompt</span>(<span class="hljs-string" style="color: rgb(168, 255, 96);">"Введите число:"</span>);
Math.<span class="hljs-built_in">floor</span>(Number(inputValue));</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Это поможет избежать непредсказуемого поведения. <u class="stk-reset">NaN</u> опасен, потому что он распространяется по цепочке вычислений:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> x = <span class="hljs-literal" style="color: rgb(198, 197, 254);">NaN</span>;
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> y = x + <span class="hljs-number" style="color: rgb(255, 115, 253);">5</span>; // Тоже <span class="hljs-literal" style="color: rgb(198, 197, 254);">NaN</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-8"><strong class="stk-reset">Как округлить число до заданного количества знаков после запятой</strong></h2><p class="stk-reset" data-ce-tag="paragraph">Методы <u class="stk-reset">Math</u> напрямую не поддерживают округление до знаков после запятой. Чтобы округлить число, например, до 2 знаков, есть несколько способов, в том числе с использованием альтернативных методов.</p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Округление вручную</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Чтобы округлить число до <u class="stk-reset">n</u> знаков после запятой:</p><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item">умножим его на <u class="stk-reset">10^n</u> — чтобы сдвинуть запятую;</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">применим округление;</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">результат разделим обратно на <u class="stk-reset">10^n</u>.</li></ul><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Например, округлим число 1,23789 до 2 знаков после запятой:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">function roundTo(num, decimals) {
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> <span class="hljs-keyword" style="color: rgb(150, 203, 254);">factor</span> = 10 ** decimals;
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">return</span> Math.<span class="hljs-built_in">round</span>(num * <span class="hljs-keyword" style="color: rgb(150, 203, 254);">factor</span>) / <span class="hljs-keyword" style="color: rgb(150, 203, 254);">factor</span>;
} <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Функция округляет число до n знаков после запятой</span>
roundTo(1.23789, 2); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 1.24</span>
roundTo(1.234, 1); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 1.2</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Альтернативный метод toFixed(digits)</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Метод <u class="stk-reset">toFixed()</u> округляет число до нужного количества знаков после запятой. Он работает по обычным правилам математики: если следующая цифра 5 и больше — округляем вверх. Но этот метод возвращает строку, а не число.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> <span class="hljs-built_in">num</span> = <span class="hljs-number" style="color: rgb(255, 115, 253);">5.6789</span>;
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> result = <span class="hljs-built_in">num</span>.toFixed(<span class="hljs-number" style="color: rgb(255, 115, 253);">2</span>);
console.log(result); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// "5.68"</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Здесь число округлилось до двух знаков после запятой. Получилась строка <u class="stk-reset">"5.68"</u>.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Если указать <u class="stk-reset">0</u> или вообще ничего не указывать, округление произойдёт до целого числа:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">console.<span class="hljs-keyword" style="color: rgb(150, 203, 254);">log</span>(num.<span class="hljs-keyword" style="color: rgb(150, 203, 254);">to</span>Fixed(<span class="hljs-number" style="color: rgb(255, 115, 253);">0</span>)); // <span class="hljs-string" style="color: rgb(168, 255, 96);">"6"</span>
console.<span class="hljs-keyword" style="color: rgb(150, 203, 254);">log</span>(num.<span class="hljs-keyword" style="color: rgb(150, 203, 254);">to</span>Fixed()); // <span class="hljs-string" style="color: rgb(168, 255, 96);">"6"</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Строку можно преобразовать обратно в число с помощью <u class="stk-reset">parseFloat()</u>:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> <span class="hljs-built_in">number</span> = <span class="hljs-built_in">parseFloat</span>(result);
<span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">number</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 5.68</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph" id="stk-9"><strong class="stk-reset">Примеры задач, в которых используются методы округления</strong></h2><p class="stk-reset" data-ce-tag="paragraph">Методы <u class="stk-reset">Math.round</u>, <u class="stk-reset">Math.floor</u>, <u class="stk-reset">Math.ceil</u>, <u class="stk-reset">Math.trunc</u> часто применяются на практике. </p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">В расчётах (финансы, средние значения, скидки):</strong></h3><p class="stk-reset" data-ce-tag="paragraph">Представьте, что у вас в корзине товар на сумму 349,999 рубля.На товар действует скидка 12,75 рубля, но магазин округляет скидку вниз до целого числа (чтобы не переплатить). После применения скидки финальная сумма должна быть округлена до ближайшего рубля.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Шаги:</p><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item">Округлить скидку вниз (<u class="stk-reset">Math.floor</u>).</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">Вычесть скидку из суммы.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">Округлить финальную сумму до ближайшего целого (<u class="stk-reset">Math.round</u>).</li></ul><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-comment" style="color: rgb(124, 124, 124);">// Исходная сумма товаров</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> total = <span class="hljs-number" style="color: rgb(255, 115, 253);">349.999</span>;
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Скидка, рассчитанная системой</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> discount = <span class="hljs-number" style="color: rgb(255, 115, 253);">12.75</span>;
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Округляем скидку вниз, чтобы не потерять деньги</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> discountApplied = <span class="hljs-built_in">Math</span>.floor(discount); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 12</span>
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Промежуточная сумма после скидки</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> subtotal = total - discountApplied; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 337.999</span>
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Округляем итоговую сумму до ближайшего рубля</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> finalTotal = <span class="hljs-built_in">Math</span>.round(subtotal); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 338</span>
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Выводим результат</span>
<span class="hljs-built_in">console</span>.log(<span class="hljs-string" style="color: rgb(168, 255, 96);">`Итоговая сумма к оплате: <span class="hljs-subst" style="color: rgb(218, 239, 163);">${finalTotal}</span> руб.`</span>);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Результат: "Итоговая сумма к оплате: 338 руб."</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">UI и frontend (разметка, размеры, шрифты)</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Представьте, что вы создаёте <strong class="stk-reset">вёрстку сетки</strong> с тремя колонками и хотите, чтобы:</p><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item">Колонки целиком поместились в контейнер.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">Центральный элемент был идеально выровнен по горизонтали.</li></ul><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Расчёт ширины колонки:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> containerWidth = <span class="hljs-number" style="color: rgb(255, 115, 253);">799.8</span>; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Ширина всего контейнера (например, в px)</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> columnCount = <span class="hljs-number" style="color: rgb(255, 115, 253);">3</span>; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Количество колонок</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> columnWidth = <span class="hljs-built_in">Math</span>.floor(containerWidth / columnCount); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 266 px</span>
<span class="hljs-built_in">console</span>.log(<span class="hljs-string" style="color: rgb(168, 255, 96);">`Ширина одной колонки: <span class="hljs-subst" style="color: rgb(218, 239, 163);">${columnWidth}</span>px`</span>);
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Ширина одной колонки: 266 px</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Объяснение:</p><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item">Находим ширину одной колонки:</li></ul><p class="stk-reset" data-ce-tag="paragraph"><u class="stk-reset">799.8 / 3 = 266.6</u>.</p><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item">Округляем вниз, чтобы все три колонки точно поместились в контейнер:</li></ul><p class="stk-reset" data-ce-tag="paragraph"><u class="stk-reset">Math.floor(266.6) = 266</u>.</p><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item">Проверим ответ:</li></ul><p class="stk-reset" data-ce-tag="paragraph"><u class="stk-reset">266 × 3 = 798</u> (всё помещается).</p><p class="stk-reset" data-ce-tag="paragraph">1,8 пикселя остаются — их можно использовать как отступы между колонками.</p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Центрирование элемента по горизонтали</strong></h3><p class="stk-reset" data-ce-tag="paragraph">У нас есть родительский блок шириной 800 px и вложенный элемент шириной 375 px. Нужно найти и выровнять центральный элемент по горизонтали. </p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Решение:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> parentWidth = <span class="hljs-number" style="color: rgb(255, 115, 253);">800</span>; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Ширина родительского блока</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> childWidth = <span class="hljs-number" style="color: rgb(255, 115, 253);">375</span>; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Ширина вложенного элемента</span>
<span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> left = <span class="hljs-built_in">Math</span>.round((parentWidth - childWidth) / <span class="hljs-number" style="color: rgb(255, 115, 253);">2</span>); <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 213 px</span>
<span class="hljs-built_in">console</span>.log(<span class="hljs-string" style="color: rgb(168, 255, 96);">`Левый отступ для центрирования: <span class="hljs-subst" style="color: rgb(218, 239, 163);">${left}</span>px`</span>);</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Объяснение:</p><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item">Найдём левый отступ центрального элемента внутри родительского блока: </li></ul><p class="stk-reset" data-ce-tag="paragraph"><u class="stk-reset">(800 − 375) / 2 = 212.5</u>.</p><ul class="stk-theme_26309__pad_hor_1 stk-theme_26309__mb_05 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item">Округляем полученное значение до ближайшего целого пикселя, чтобы избежать «размытых» краёв или смещения.</li></ul><p class="stk-reset" data-ce-tag="paragraph"><u class="stk-reset">Math.round(212.5) = 213 px</u>.</p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Работа с координатами</strong></h3><p class="stk-reset" data-ce-tag="paragraph">Вы хотите плавно перемещать элемент (например, кружок) слева направо. Координата <u class="stk-reset">x</u> вычисляется при каждом кадре — она может быть дробной, но <u class="stk-reset">CSS left</u> принимает целое число пикселей. Если задать дробное значение, браузер может отрисовать элемент размыто или вызвать дрожание.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Решение:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">let</span> x = <span class="hljs-number" style="color: rgb(255, 115, 253);">123.78</span>; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// Текущая позиция из расчёта</span>
<span class="hljs-comment" style="color: rgb(124, 124, 124);">// Округляем координату до ближайшего целого</span>
element.style.<span class="hljs-keyword" style="color: rgb(150, 203, 254);">left</span> = <span class="hljs-type" style="color: rgb(255, 255, 182);">Math</span>.round(x) + <span class="hljs-string" style="color: rgb(168, 255, 96);">"px"</span>; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// "124px"</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Объяснение:</p><ul class="stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-reset stk-list-item" data-ce-tag="list-item"><u class="stk-reset">x = 123.78</u> — позиция рассчитывается динамически — например, по времени или скорости.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">Округляем до целого: <u class="stk-reset">Math.round(x) = 124</u>.</li><li class="stk-reset stk-list-item" data-ce-tag="list-item">CSS требует чётких координат, поэтому <u class="stk-reset">element.style.left = 124px</u>.</li></ul><p class="stk-reset" data-ce-tag="paragraph">Если оставить дробные координаты (<u class="stk-reset">123.78px</u>), элемент может отрисовываться размыто или дрожать при движении.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-theme_26309__style_large_header stk-reset" id="stk-10" data-ce-tag="paragraph"><strong class="stk-reset">Типичные ошибки при округлении</strong></h2><p class="stk-reset" data-ce-tag="paragraph">Рассмотрим ошибки, которые часто совершают при использовании методов Math.</p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Неправильное использование Math.round()</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Иногда новички пытаются использовать <u class="stk-reset">Math.round()</u> с двумя аргументами.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">Math.<span class="hljs-built_in">round</span>(<span class="hljs-number" style="color: rgb(255, 115, 253);">1.2345</span>, <span class="hljs-number" style="color: rgb(255, 115, 253);">2</span>) <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 1</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-reset" data-ce-tag="paragraph">Это не работает — <u class="stk-reset">Math.round</u> принимает только одно число. Второй аргумент игнорируется.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Решение: использовать один аргумент.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);">Math.<span class="hljs-built_in">round</span>(<span class="hljs-number" style="color: rgb(255, 115, 253);">1.2345</span> * <span class="hljs-number" style="color: rgb(255, 115, 253);">100</span>) / <span class="hljs-number" style="color: rgb(255, 115, 253);">100</span> <span class="hljs-comment" style="color: rgb(124, 124, 124);">// 1.23</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Ожидание точности при работе с дробями</strong></h3><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Иногда новички думают, что округление решит проблему плавающей запятой:</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-comment" style="color: rgb(124, 124, 124);">// Неправильное ожидание:</span>
Math.<span class="hljs-built_in">round</span>(<span class="hljs-number" style="color: rgb(255, 115, 253);">0.1</span> + <span class="hljs-number" style="color: rgb(255, 115, 253);">0.2</span>) === <span class="hljs-number" style="color: rgb(255, 115, 253);">0.3</span>; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// false (0.30000000000000004 округляется до 0)</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Решение: нужно сначала корректировать точность.</p><figure class="stk-reset stk-embed_rendered" data-ce-tag="embed"><code class="stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(0, 0, 0); color: rgb(248, 248, 248);"><span class="hljs-keyword" style="color: rgb(150, 203, 254);">const</span> <span class="hljs-keyword" style="color: rgb(150, 203, 254);">sum</span> = 0.1 + 0.2;
Math.<span class="hljs-built_in">round</span>(<span class="hljs-keyword" style="color: rgb(150, 203, 254);">sum</span> * 10) / 10 === 0.3; <span class="hljs-comment" style="color: rgb(124, 124, 124);">// true</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><div class="stk-grid stk-grid__layout_columns" data-stk-css="stkE_BRn" data-ce-tag="grid"><div data-col-width="1" class="stk-grid-col align-left valign-top stk-mobile-hidden" data-ce-tag="grid-col" data-stk-css="" data-stk-css-m=""><a class="sklbx-link sklbx-link--fb stk-container stk-container-link stk-reset" data-ce-tag="container" data-container-name="Telegram" href="https://t.me/skillbox_media_code" target="_blank"><svg class="sklbx-link__icon" width="25" height="20" xmlns="http://www.w3.org/2000/svg">
<path d="m9.417 15.181-.397 5.584c.568 0 .814-.244 1.109-.537l2.663-2.545 5.518 4.041c1.012.564 1.725.267 1.998-.931l3.622-16.972.001-.001c.321-1.496-.541-2.081-1.527-1.714l-21.29 8.151c-1.453.564-1.431 1.374-.247 1.741l5.443 1.693 12.643-7.911c.595-.394 1.136-.176.691.218z" fill-rule="evenodd"></path>
</svg></a></div><div data-col-width="11" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><p class="stk-reset stk-theme_26309__mb_05 stk-theme_26309__style_font_style-1629786048064" data-ce-tag="paragraph" data-stk-css="stka56BX">Больше интересного про код — в нашем <a class="stk-reset" href="https://t.me/skillbox_media_code" target="_blank">телеграм-канале</a>. Подписывайтесь!</p></div></div></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><div class="stk-grid" data-ce-tag="grid" data-stk-css="stkuQEgs"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col" data-stk-css="" data-stk-css-m=""><p class="stk-reset stk-theme_26309__style_small_text stk-theme_26309__mb_05" data-ce-tag="paragraph"><strong class="stk-reset">Читайте также:</strong></p><ul class="stk-theme_26309__style_small_text stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/chto-takoe-javascript-i-zachem-on-nuzhen/" target="_blank" class="stk-reset">Что такое JavaScript и зачем он нужен</a></li><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/bazovye-operatory-v-javascript/" target="_blank" class="stk-reset">Базовые операторы в JavaScript</a></li><li class="stk-theme_26309__style_small_text stk-reset stk-list-item" data-ce-tag="list-item"><a href="https://skillbox.ru/media/code/funkcii-v-javascript-kak-ih-obyavlyat-vyzyvat-i-ispolzovat-bez-oshibok/" target="_blank" class="stk-reset">Функции в JavaScript: как их объявлять, вызывать и использовать без ошибок</a></li></ul></div></div></div></div><style data-stk-css="stkuQEgs" media="all" class="">
[data-stk-css="stkuQEgs"]:not(#stk):not(#stk):not(style) {
padding: 20px;
background-color: rgba(254, 245, 224, 1)
}
</style><style data-stk-css="stkE_BRn" class="" media="all">
[data-stk-css="stkE_BRn"]:not(#stk):not(#stk):not(style) {
border-radius: 16px;
padding: 20px;
border: 1px solid;
border-color: #E4E4E4;
background-color: rgba(241, 242, 246, 1)
}
</style><style data-stk-css="stka56BX" class="" media="all">
[data-stk-css="stka56BX"]:not(#stk):not(#stk):not(style) {
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
-o-hyphens: none;
hyphens: none
}
</style></div> </div>
</div>
</div>
</div>
<div class="col-xl-9 col-lg-8 col-poster">
<div class="article-preview-info">
</div>
</div>
<noindex>
<div class="share" data-nosnippet>
<button class="share__handler-btn ">
<span class="share__handler-icon">
<svg width="11" height="12" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11 4.99902L6 0V2.99805C2.688 2.99805 0 5.68505 0 8.99805V11.498H0.0980225C0.765022 8.91205 3.107 6.99805 5.901 6.99805H6.00098V9.99805L11 4.99902Z" fill="currentColor"/>
</svg>
</span>
<span class="share__handler-text">Поделиться</span>
</button>
<div class="share__list">
<a href="#" class="share__item" data-code="vk">
<span class="share__item-icon share__item-icon--vk">
<svg width="9" height="5" viewBox="0 0 9 5" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.04776 4.98054H4.53996C4.62377 4.97136 4.70279 4.9361 4.76621 4.87951C4.81226 4.81209 4.83594 4.73139 4.83369 4.64925C4.83369 4.64925 4.82574 3.94629 5.1314 3.84125C5.43701 3.73621 5.826 4.51998 6.23879 4.82297C6.39281 4.95308 6.59128 5.01558 6.79053 4.99669L7.89399 4.98054C7.89399 4.98054 8.47355 4.94415 8.19965 4.46339C7.98372 4.08315 7.70589 3.743 7.37799 3.45744C6.68338 2.77872 6.77865 2.8878 7.61219 1.71216C8.12024 0.997077 8.32269 0.556717 8.25918 0.370875C8.14651 0.254767 7.98299 0.205914 7.82655 0.241594L6.58018 0.249674C6.52565 0.241067 6.46984 0.251007 6.42141 0.277954C6.37298 0.314507 6.33466 0.363228 6.31025 0.419356C6.18259 0.772814 6.0287 1.11586 5.8498 1.44552C5.29807 2.43936 5.07579 2.49188 4.98451 2.43128C4.77416 2.28584 4.82574 1.85356 4.82574 1.54248C4.82574 0.580957 4.96468 0.176954 4.55979 0.0719133C4.36879 0.0254376 4.17259 0.00505841 3.97631 0.0113129C3.62834 -0.0214164 3.27745 0.017045 2.94429 0.124433C2.8014 0.197154 2.69423 0.358753 2.76171 0.370875C2.90334 0.385518 3.03406 0.454932 3.12688 0.564795C3.21268 0.750336 3.25481 0.953675 3.24993 1.15868C3.24993 1.15868 3.32535 2.29392 3.07925 2.43532C2.91254 2.53228 2.68232 2.33432 2.18616 1.4334C2.01958 1.11848 1.87243 0.793298 1.74557 0.459754C1.72231 0.404013 1.68704 0.354309 1.64236 0.314316C1.58589 0.272672 1.52066 0.245006 1.45184 0.233514L0.268986 0.241594C0.181167 0.241154 0.0958013 0.271066 0.0268587 0.326434C-0.00595087 0.396174 -0.00882613 0.476652 0.0189202 0.548633C0.0189202 0.548633 0.947737 2.83932 1.99563 3.99477C2.51 4.60651 3.2568 4.96526 4.04776 4.98054Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Vkontakte</span>
</a>
<a href="#" class="share__item" data-code="tw">
<span class="share__item-icon share__item-icon--tw">
<svg width="9" height="7" viewBox="0 0 9 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.52788 0.00144284V0H5.9158L6.05754 0.027414C6.15204 0.0452114 6.23783 0.068535 6.31491 0.0973918C6.39201 0.126249 6.46661 0.159917 6.53872 0.198391C6.61083 0.236864 6.67623 0.276066 6.73492 0.315982C6.79311 0.355422 6.84533 0.397265 6.89158 0.441509C6.93733 0.486237 7.0087 0.49778 7.10568 0.476138C7.20266 0.454495 7.3071 0.424433 7.419 0.38596C7.5309 0.347487 7.64156 0.304201 7.75097 0.256104C7.86039 0.208007 7.92703 0.177469 7.95091 0.164484C7.97428 0.151022 7.98671 0.143808 7.98821 0.142841L7.98969 0.140677L7.99715 0.13707L8.00461 0.133463L8.01207 0.129856L8.01953 0.126249L8.02102 0.124084L8.02326 0.122642L8.02551 0.121199L8.02699 0.119034L8.03445 0.11687L8.04191 0.115427L8.04043 0.126249L8.03818 0.13707L8.03445 0.147891L8.03072 0.158713L8.02699 0.165927L8.02326 0.173141L8.01953 0.183962C8.01705 0.191176 8.01456 0.200793 8.01207 0.212819C8.00959 0.224845 7.98596 0.272935 7.9412 0.357103C7.89644 0.441271 7.84049 0.526637 7.77335 0.613208C7.70621 0.699778 7.64604 0.765182 7.59283 0.809434C7.53911 0.854162 7.50355 0.885421 7.48614 0.903219C7.46874 0.921492 7.4476 0.938323 7.42273 0.953718L7.38543 0.977525L7.37797 0.981132L7.37051 0.984739L7.36902 0.986903L7.36678 0.988346L7.36454 0.989789L7.36305 0.991953L7.35559 0.99556L7.34813 0.999168L7.34664 1.00133L7.3444 1.00277L7.34216 1.00422L7.34067 1.00638L7.33918 1.00855L7.33694 1.00999L7.3347 1.01143L7.33321 1.0136H7.37051L7.57939 0.970311C7.71865 0.941454 7.85168 0.906588 7.9785 0.865705L8.17992 0.800777L8.2023 0.793563L8.21349 0.789956L8.22095 0.786348L8.22841 0.782741L8.23587 0.779134L8.24333 0.775527L8.25825 0.773363L8.27317 0.77192V0.786348L8.26944 0.787791L8.26571 0.789956L8.26423 0.79212L8.26198 0.793563L8.25974 0.795006L8.25825 0.79717L8.25677 0.799334L8.25452 0.800777L8.25228 0.80222L8.25079 0.804384L8.24931 0.806548L8.24706 0.807991L8.24333 0.815205L8.2396 0.82242L8.23736 0.823862C8.23637 0.825305 8.20479 0.866181 8.14262 0.946504C8.08046 1.0273 8.04689 1.06818 8.04191 1.06915C8.03694 1.07059 8.02997 1.0778 8.02102 1.09079C8.01257 1.10425 7.95985 1.15788 7.86287 1.25166C7.76589 1.34545 7.67091 1.42889 7.57791 1.502C7.48441 1.57558 7.43716 1.666 7.43616 1.77325C7.43467 1.88002 7.42895 2.00074 7.419 2.13541C7.40905 2.27007 7.3904 2.41555 7.36305 2.57186C7.3357 2.72817 7.29342 2.90492 7.23623 3.10211C7.17904 3.29929 7.10941 3.49168 7.02735 3.67925C6.94529 3.86681 6.8595 4.03514 6.76998 4.18424C6.68046 4.33334 6.5984 4.45958 6.5238 4.56299C6.4492 4.66639 6.37336 4.76378 6.29626 4.85516C6.21918 4.94654 6.12171 5.04947 6.00384 5.16393C5.88547 5.27791 5.82082 5.34044 5.80988 5.3515C5.79844 5.36208 5.74971 5.40152 5.66365 5.46981C5.57812 5.53858 5.48611 5.60736 5.38763 5.67614C5.28966 5.74443 5.19964 5.80143 5.11758 5.84711C5.03552 5.8928 4.93655 5.94498 4.82067 6.00366C4.70529 6.06282 4.58046 6.11765 4.44618 6.16815C4.3119 6.21865 4.17016 6.26554 4.02096 6.30882C3.87176 6.35211 3.72753 6.38578 3.58827 6.40982C3.44903 6.43387 3.29112 6.45431 3.11456 6.47114L2.84973 6.49639V6.5H2.36483V6.49639L2.30142 6.49279C2.25915 6.49038 2.22433 6.48797 2.19698 6.48557C2.16963 6.48317 2.06643 6.46994 1.88739 6.44589C1.70835 6.42185 1.56785 6.3978 1.4659 6.37375C1.36395 6.34971 1.21225 6.30401 1.01083 6.23668C0.809413 6.16935 0.637087 6.10129 0.493854 6.03252C0.351121 5.96422 0.261601 5.92094 0.225293 5.90266C0.189485 5.88487 0.149201 5.86275 0.10444 5.83629L0.0373001 5.79661L0.0358156 5.79445L0.0335701 5.79301L0.0313321 5.79156L0.0298401 5.7894L0.0223801 5.78579L0.0149201 5.78219L0.0134355 5.78002L0.01119 5.77858L0.00895204 5.77714L0.00746003 5.77497L0.00597548 5.77281L0.00373001 5.77137H0V5.75694L0.00746003 5.75838L0.0149201 5.76054L0.0484902 5.76415C0.0708703 5.76655 0.131796 5.77016 0.231261 5.77497C0.330733 5.77978 0.436412 5.77978 0.548312 5.77497C0.660213 5.77016 0.774605 5.75934 0.891474 5.74251C1.00835 5.72568 1.14636 5.69682 1.30551 5.65594C1.46466 5.61505 1.61087 5.56648 1.74416 5.51021C1.87695 5.45346 1.97144 5.41114 2.02764 5.38324C2.08334 5.35583 2.16838 5.30484 2.28277 5.2303L2.45435 5.11848L2.45584 5.11632L2.45808 5.11487L2.46033 5.11343L2.46181 5.11127L2.4633 5.1091L2.46554 5.10766L2.46779 5.10622L2.46927 5.10405L2.47673 5.10189L2.48419 5.10044L2.48568 5.09323L2.48792 5.08602L2.49017 5.08457L2.49165 5.08241L2.43197 5.0788C2.39219 5.0764 2.35364 5.07399 2.31634 5.07159C2.27904 5.06918 2.2206 5.05836 2.14103 5.03912C2.06146 5.01988 1.97567 4.99103 1.88366 4.95255C1.79165 4.91408 1.70213 4.86838 1.6151 4.81548C1.52807 4.76258 1.46515 4.71857 1.42636 4.68346C1.38807 4.64883 1.33833 4.59978 1.27716 4.53629C1.21648 4.47233 1.16376 4.40668 1.119 4.33934C1.07424 4.27202 1.03148 4.19433 0.990699 4.10633L0.928774 3.97503L0.925044 3.96421L0.921314 3.95339L0.919076 3.94617L0.917584 3.93896L0.928774 3.9404L0.939964 3.94256L1.02202 3.95339C1.07674 3.9606 1.16253 3.963 1.27939 3.9606C1.39627 3.9582 1.47709 3.95339 1.52185 3.94617C1.56661 3.93896 1.59396 3.93414 1.60391 3.93174L1.61883 3.92814L1.63748 3.92453L1.65613 3.92092L1.65762 3.91876L1.65986 3.91731L1.6621 3.91587L1.66359 3.91371L1.64867 3.9101L1.63375 3.90649L1.61883 3.90289L1.60391 3.89928L1.58899 3.89567C1.57904 3.89327 1.56164 3.88846 1.53677 3.88124C1.5119 3.87403 1.44476 3.84757 1.33535 3.80189C1.22594 3.7562 1.1389 3.71171 1.07424 3.66842C1.00943 3.62501 0.947626 3.57754 0.889235 3.5263C0.831047 3.47436 0.767145 3.40751 0.697513 3.32575C0.627888 3.24399 0.565724 3.149 0.511012 3.04079C0.456308 2.93257 0.415277 2.82917 0.387922 2.73058C0.360676 2.63256 0.3427 2.53235 0.334217 2.43119L0.320781 2.27969L0.328241 2.28113L0.335701 2.2833L0.343161 2.2869L0.350621 2.29051L0.358081 2.29412L0.365541 2.29772L0.481172 2.34822C0.558264 2.38189 0.653998 2.41075 0.768383 2.43479C0.882775 2.45884 0.951154 2.47207 0.973534 2.47447L1.0071 2.47808H1.07424L1.07276 2.47592L1.07051 2.47447L1.06828 2.47303L1.06678 2.47087L1.0653 2.4687L1.06305 2.46726L1.06082 2.46582L1.05932 2.46365L1.05186 2.46004L1.0444 2.45644L1.04292 2.45427L1.04067 2.45283L1.03844 2.45139L1.03694 2.44922L1.02948 2.44562L1.02202 2.44201L1.02054 2.43984C1.01905 2.43888 0.99766 2.42349 0.956376 2.39367C0.915592 2.36337 0.872823 2.32418 0.828063 2.27608C0.783303 2.22798 0.738543 2.17749 0.693783 2.12458C0.64894 2.07156 0.609 2.01483 0.574422 1.95505C0.539614 1.89493 0.502806 1.81846 0.464014 1.72564C0.425721 1.6333 0.396627 1.54023 0.376731 1.44645C0.356843 1.35266 0.345653 1.26008 0.343161 1.1687C0.340677 1.07732 0.343161 0.999168 0.350621 0.93424C0.358081 0.869312 0.373001 0.795965 0.395382 0.714206C0.417762 0.632448 0.450093 0.545877 0.492362 0.454495L0.555772 0.317425L0.559502 0.306604L0.563232 0.295782L0.565478 0.29434L0.566962 0.292175L0.568454 0.290011L0.570692 0.288568L0.572938 0.290011L0.574422 0.292175L0.575914 0.29434L0.578152 0.295782L0.580398 0.297225L0.581882 0.29939L0.583374 0.301554L0.585612 0.302997L0.589342 0.310211L0.593072 0.317425L0.595318 0.318868L0.596802 0.321032L0.697513 0.429245C0.764653 0.501387 0.844229 0.581948 0.936234 0.670921C1.02825 0.759894 1.07922 0.806065 1.08916 0.809434C1.09912 0.813279 1.11154 0.824338 1.12646 0.842619C1.14138 0.860417 1.19112 0.902981 1.27567 0.970311C1.36022 1.03764 1.47087 1.1158 1.60764 1.20477C1.74441 1.29375 1.89609 1.38152 2.0627 1.46809C2.22931 1.55466 2.40835 1.63281 2.59982 1.70255C2.7913 1.77229 2.92558 1.81798 3.00266 1.83962C3.07975 1.86127 3.21154 1.88892 3.39804 1.92259C3.58454 1.95625 3.72505 1.9779 3.81954 1.98751C3.91403 1.99713 3.97869 2.00266 4.0135 2.00411L4.06572 2.00555L4.06423 1.99473L4.06199 1.98391L4.04707 1.89373C4.03712 1.83361 4.03215 1.74944 4.03215 1.64123C4.03215 1.53302 4.04085 1.43322 4.05826 1.34184C4.07567 1.25046 4.10178 1.15788 4.13659 1.0641C4.1714 0.970311 4.20547 0.895038 4.23879 0.838291C4.27261 0.78202 4.31687 0.717814 4.37158 0.645671C4.42629 0.573529 4.49716 0.498985 4.58419 0.422031C4.67122 0.345077 4.77069 0.276542 4.88259 0.216426C4.99449 0.15631 5.09769 0.110615 5.19218 0.0793563C5.28668 0.0480971 5.36625 0.0276521 5.4309 0.0180355C5.49556 0.00841898 5.52788 0.00288568 5.52788 0.00144284Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Twitter</span>
</a>
<a href="#" class="share__item" data-code="tg">
<span class="share__item-icon share__item-icon--tg">
<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.39589 3.04852C1.39589 3.04852 5.05491 1.51189 6.32392 0.9708C6.8104 0.754384 8.46012 0.0617918 8.46012 0.0617918C8.46012 0.0617918 9.22155 -0.241191 9.15809 0.494655C9.13692 0.797667 8.96773 1.85815 8.79854 3.00523C8.54472 4.62846 8.26976 6.40316 8.26976 6.40316C8.26976 6.40316 8.22746 6.90097 7.86791 6.98753C7.50836 7.0741 6.91613 6.68455 6.8104 6.59795C6.72577 6.53304 5.22411 5.5591 4.6742 5.08295C4.52614 4.9531 4.35695 4.6934 4.69533 4.39039C5.45676 3.67617 6.36622 2.78882 6.91613 2.2261C7.16995 1.96638 7.42374 1.36038 6.36622 2.09622C4.86456 3.15674 3.38403 4.15231 3.38403 4.15231C3.38403 4.15231 3.04561 4.36873 2.41111 4.17394C1.77657 3.97918 1.03631 3.71945 1.03631 3.71945C1.03631 3.71945 0.528726 3.39481 1.39589 3.04852Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Telegram</span>
</a>
<a href="#" class="share__item js-share-item-copy">
<span class="share__item-icon share__item-icon--copy">
<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.19922 5.40327C4.37217 5.63449 4.59283 5.8258 4.84622 5.96425C5.09962 6.10269 5.37982 6.18501 5.66783 6.20564C5.95584 6.22627 6.24492 6.18471 6.51546 6.08379C6.78599 5.98287 7.03166 5.82495 7.2358 5.62074L8.44399 4.41255C8.81079 4.03277 9.01375 3.52412 9.00917 2.99615C9.00458 2.46818 8.79281 1.96313 8.41946 1.58978C8.04611 1.21644 7.54106 1.00466 7.01309 1.00008C6.48512 0.995488 5.97647 1.19845 5.59669 1.56525L4.904 2.25392" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.81002 4.59658C5.63707 4.36536 5.41641 4.17404 5.16302 4.0356C4.90962 3.89716 4.62942 3.81483 4.34141 3.79421C4.0534 3.77358 3.76432 3.81514 3.49379 3.91605C3.22325 4.01697 2.97758 4.17489 2.77344 4.3791L1.56525 5.58729C1.19845 5.96707 0.995488 6.47572 1.00008 7.0037C1.00466 7.53167 1.21644 8.03672 1.58978 8.41006C1.96313 8.78341 2.46818 8.99518 2.99615 8.99977C3.52412 9.00436 4.03277 8.80139 4.41255 8.43459L5.10122 7.74592" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</span>
<span class="share__item-text">Скопировать ссылку</span>
</a>
</div>
</div>
</noindex>
</div>
<section class="container inset" data-banner="223479" data-source="224879" data-format="horizontal">
<section class="container inset" data-format="horizontal">
<div class="row">
<div class="col-lg-8 col-sm-12">
<a data-source="224879" data-banner="223479" target="_blank" href="https://skillbox.ru/course/frontend-developer/" class="article-advert-banner__link courseLink" data-format="horizontal" data-type="horizontal" data-courseid="3254">
<div class="inset__wrapper" style="background-color: #EDEBF0;">
<div class="inset__content">
<h2 class="inset__header">Курс с помощью в трудоустройстве</h2>
<p class="inset__description">
Профессия Фронтенд-разработчик + ИИ
</p>
<ul class="inset__text" style="color:#000!important; list-style:'\2022 ' outside; margin-left:20px;">
<li style="list-style:'\2022 '; padding-left:10px; margin-bottom:6px">
Трудоустройство с помощью Центра карьеры Skillbox — можно работать уже через 8 месяцев</li>
<li style="list-style:'\2022 '; padding-left:10px; margin-bottom:6px">
3 проекта в портфолио и 50 практических задач</li>
<li style="list-style:'\2022 '; padding-left:10px; margin-bottom:6px">
Нейросети в программе, чтобы быстрее писать и проверять код</li>
</ul>
<p class="inset__button article-advert-banner__link">
Подробнее
</p>
</div>
<div class="inset__image">
<img width="250" src="https://cdn.skillbox.pro/landgen/blocks/start-screen/225567/lg/1b07db09-8fc4-4dc8-b907-dd2b001ce656.webp" height="250" alt="">
</div>
</div>
</a>
</div>
</div>
</section> </section>
<div style="align-content: center; background-color: black; overflow: hidden;">
<noindex>
<div style="display: flex; align-items: center; justify-content: center; background-color: black; height: 60px; color: white; text-align: center">
Листая дальше, вы перейдете на страницу <a style="text-decoration: underline;" data-type="scroll" href="https://bootcamp.skillbox.ru/it-jobs/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-759_all_code_skillbox">Как зарабатывать деньги на IT в 2026 - бесплатный курс «Старт с нуля»</a>
</div>
<div class="iframe-wrapper" style="height: 100vh; transform: scale(0.5);">
<iframe id="test_iframe" scrolling="no" style="overflow: hidden;margin: 0 auto;display: block; width: 100%; height: 100%" src="https://bootcamp.skillbox.ru/it-jobs/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-759_all_code_skillbox">
</iframe>
</div>
</noindex>
</div>
<script>
jQuery(document).ready(function($) {
$('footer.without-buttons').remove();
let iframeWrapper = $('.iframe-wrapper');
var check = false;
$(window).on('scroll', function() {
let iframeWrapperHeight = iframeWrapper.height();
let iframeWrapperOffset = iframeWrapper.offset().top - iframeWrapperHeight;
let scrollTop = $(window).scrollTop();
const {scrollHeight, clientHeight } = document.documentElement;
const maxScroll = scrollHeight - clientHeight;
const power = 1
const scale = (scrollTop / maxScroll) * power;
iframeWrapper.css('height', `${clientHeight}`)
if (scrollTop > iframeWrapperOffset) {
if(!check) {
document.dispatchEvent(new CustomEvent('articleAdvertBanner', {
detail: {
event: 'show',
id: 226244,
sourceId: 224879,
format: "new_banner"
}
}));
}
check = true;
iframeWrapper.css({'transform': `scale(${scale})`})
if (maxScroll === scrollTop || maxScroll === iframeWrapper.offset().top) {
redirect();
} else if (maxScroll <= scrollTop + 1 ) {
redirect();
}
}
function isNeedAddUtm(url)
{
if (typeof url !== 'string') {
return false;
}
var externalLinks = [
'freelancer.skillbox.ru',
'sale.skillbox.ru',
'course.skillbox.ru',
'interiordesign.skillbox.ru',
'iamwebdev.skillbox.ru',
'iammarketer.skillbox.ru',
'iamdesigner.skillbox.ru',
'live.skillbox.ru',
'b2b.skillbox.ru',
'highereducation.skillbox.ru',
'skillbox.ru/courses',
'skillbox.ru/sale',
'skillbox.ru/media'
];
for (var i = 0; i < externalLinks.length; i++) {
externalLinks[i] = escapeRegExp(externalLinks[i]);
}
var regexp = new RegExp('^http[s]?:\/\/(skillbox\.ru|' + escapeRegExp(window.location.host) + '|' + externalLinks.join('|') + ')\/(?!media/)[a-zA-Z0-9-_/]*');
return !!url.match(regexp);
}
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
}
function redirect() {
document.dispatchEvent(new CustomEvent('articleAdvertBanner', {
detail: {
event: 'click',
id: 226244,
sourceId: 224879,
format: "new_banner"
}
}));
var page = window.location.href;
var $article = $('section[data-article-text]');
var pageId = $article.data('articleid');
if(pageId === undefined)
{
pageId = 0;
}
window.dataLayer.push({
'event': 'go_to_course',
'courseID': 226244,
'page': page,
'pageID': pageId
});
var link = "https://bootcamp.skillbox.ru/it-jobs/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-759_all_code_skillbox";
if(isNeedAddUtm(link)) {
var urlSplit = link.split('?');
var urlBase = urlSplit[0] ? urlSplit[0] : '';
link = urlBase + '?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_banners_scroll_all_all_skillbox';
}
window.location.assign(link);
// var iframe = document.getElementById("test_iframe");
// var src = iframe.src;
// var document_frame = iframe.contentWindow.document.documentElement;
// var body = window.document.body.innerHTML;
// var title = iframe.contentWindow.document.head.title;
//
// window.history.pushState({
// "html": body,
// "pageTitle": title,
// "src": document.location.href
// }, '', src);
// window.addEventListener("popstate", function(e) {
// window.location.href = document.location;
// });
//
// document.documentElement.replaceWith(document_frame);
}
});
});
</script> </section>
<div class="article-banner" data-banner="223362" data-source="224879" data-format="vertical" data-type="vertical">
<div class="row">
<div class="col-sm-4 col-sm-12">
<a data-source="224879" data-banner="223362" href="https://skillbox.ru/course/frontend-developer/" class="inset__wrapper" style="background-color: #f2eeff; display: block; text-decoration: none; color: inherit;" target="_blank">
<div class="inset__content">
<h2 class="inset__header">Курс с помощью в трудоустройстве</h2>
<div class="inset__image" style="text-align: center; margin-bottom:3px">
<img src="https://cdn.skillbox.pro/landgen/blocks/universal-extra-info/298612/lg/da61adec-efa6-4d14-81a2-3244a1c904a7.webp" width="350" height="350" alt="">
</div>
<p class="inset__description" style="color:#000!important; padding-bottom:1px;">
Профессия Фронтенд-разработчик + ИИ
</p>
<p class="inset__text" style="color:#000!important">
Освойте фронтенд без опыта в IT. Практикуйтесь на реальных задачах и находите первых заказчиков в комьюнити Skillbox.
</p>
<div class="inset__button article-advert-banner__link" style="color:#000; background-color:#ffafff; display: inline-block;">Узнать о курсе →</div>
</div>
</a>
</div>
</div>
<br> </div>
<a data-source="224879" data-banner="223363" target="_blank" href="https://skillbox.ru/course/frontend-developer/" class="article-banner article-advert-banner__link courseLink" style="background-color: #E9E9F5;" data-format="top" data-type="top" data-courseid="3522">
<div class="article-banner__img">
<img src="https://cdn.skillbox.pro/landgen/blocks/universal-extra-info/298612/lg/da61adec-efa6-4d14-81a2-3244a1c904a7.webp" alt="">
</div>
<span class="article-banner__title">Курс с трудоустройством: «<u>Профессия Фронтенд-разработчик + ИИ</u>»</span>
<span class="article-banner__link">Узнать о курсе</span>
</a>
<div class="question">
<div class="container">
<div class="question__inner">
<div class="question__title">Понравилась статья?</div>
<a href="#" data-cur-url="/media/code/math-round-floor-ceil-i-trunc-v-javascript-rukovodstvo-po-okrugleniyu-chisel-v-js/"
class="question__btn js-modalLink" data-mfp-src="#modalAuth">Да</a>
</div>
</div>
</div>
</div>
<span
data-area="article-bottom"
data-current-url="/media/code/math-round-floor-ceil-i-trunc-v-javascript-rukovodstvo-po-okrugleniyu-chisel-v-js/"
data-id="224879">
</span>
</div>
<script type="application/ld+json">
{"@context":"http:\/\/schema.org","@type":"Article","url":"https:\/\/skillbox.ru\/media\/code\/math-round-floor-ceil-i-trunc-v-javascript-rukovodstvo-po-okrugleniyu-chisel-v-js\/","headline":"Math round, floor, ceil \u0438\u00a0trunc \u0432\u00a0JavaScript: \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e\u00a0\u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044e \u0447\u0438\u0441\u0435\u043b \u0432\u00a0JS","articleSection":"\u041a\u043e\u0434","articleBody":"\u041e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u0435\u043b \u2014 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \r\n\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u041a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e. \u041d\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432: \u043a\u0430\u043a\u043e\u0439 \u043c\u0435\u0442\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430, \u043a\u0430\u043a \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0438 \u0434\u043e \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439.\r\n\r\n\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\r\n\r\n- \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0447\u0438\u0441\u0435\u043b \u0432 JavaScript [ #stk-1 ] \r\n- \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 Math \u0432 JavaScript [ #stk-2 ] \r\n- Math.floor() \u2014 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0432\u043d\u0438\u0437 [ #stk-3 ] \r\n- Math.ceil() \u2014 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0432\u0432\u0435\u0440\u0445 [ #stk-4 ] \r\n- Math.round() \u2014 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 \r\n[ #stk-5 ] \r\n- Math.trunc() \u2014 \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u043d\u0438\u0435 \u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438\r\n[ #stk-6 ] \r\n- \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u0430\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \r\n\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f [ #stk-7 ] \r\n- \u041a\u0430\u043a \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u0434\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \r\n\u0437\u043d\u0430\u043a\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 [ #stk-8 ] \r\n- \u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0437\u0430\u0434\u0430\u0447, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \r\n\u043c\u0435\u0442\u043e\u0434\u044b \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f [ #stk-9 ] \r\n- \u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0438 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0438 [ #stk-10 ]\r\n \r\n\r\n\u0412 JavaScript \u0434\u043b\u044f \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \r\n\u043e\u0431\u044a\u0435\u043a\u0442 Math, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u044b Math.floor, Math.ceil, Math.round \u0438 Math.trunc. \r\n\r\n\u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u0438\u0445, \u043e\u0431\u044a\u0435\u043a\u0442 Math \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \r\n\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435\u043c: Math.abs(x) \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u043e\u0434\u0443\u043b\u044c \u0447\u0438\u0441\u043b\u0430, Math.random() \u2014 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043e\u0442 0 \u0434\u043e 1, Math.pow(x, y) \u0432\u043e\u0437\u0432\u043e\u0434\u0438\u0442 \u0447\u0438\u0441\u043b\u043e x \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c y, Math.sqrt(x) \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0439 \u043a\u043e\u0440\u0435\u043d\u044c \u0438\u0437 \u0447\u0438\u0441\u043b\u0430. \u041e \u043d\u0438\u0445 \u0438 \u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u0430\u0445 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 .\r\n\r\n\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \r\n\u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0432 JavaScript, \u043a\u0430\u043a\u0438\u0435 \u0432 \u043d\u0451\u043c \u0435\u0441\u0442\u044c \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0438 \u0438 \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u0438 \u0437\u043d\u0430\u043d\u0438\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \r\n\r\n\u041d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0447\u0438\u0441\u043b\u0430\u0445 \r\n\u0432 JavaScript.\r\n\r\n\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0447\u0438\u0441\u0435\u043b \u0432 JavaScript\r\n\r\n\u0412 JavaScript \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0442\u0438\u043f\u0430 \u0447\u0438\u0441\u0435\u043b. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \r\n\u0442\u0438\u043f \u2014 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0446\u0435\u043b\u044b\u0435 \u0438 \u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430. \u041e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043e\u0442 \u22129 \u043a\u0432\u0430\u0434\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0434\u043e 9 \u043a\u0432\u0430\u0434\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 (\u0442\u043e\u0447\u043d\u0435\u0435 \u2014 \u043e\u0442 \u2212(2\u2075\u00b3 \u2212 1) \u0434\u043e 2\u2075\u00b3 \u2212 1. \u0422\u0430\u043a\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u0438\u043c\u0435\u044e\u0442 \u0442\u0438\u043f number.\r\n\r\nlet a = 5; \/\/ \u042d\u0442\u043e number let b = 3.14; \/\/ \u0422\u043e\u0436\u0435 number let c = -100; \r\n\/\/ \u0418 \u044d\u0442\u043e number\r\n\r\nJavaScript \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u0438\u0445 \u0447\u0438\u0441\u0435\u043b \r\n\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u00ab\u0447\u0438\u0441\u043b\u0430 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438\u00bb. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043c\u044b\u0441\u043b \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0447\u0438\u0441\u043b\u0430 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435. \u0412\u0441\u0451 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u043f\u043e\u043a\u0430 \u0440\u0435\u0447\u044c \u0438\u0434\u0451\u0442 \u043e \u0446\u0435\u043b\u044b\u0445 \u0447\u0438\u0441\u043b\u0430\u0445, \u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u044b\u0435 \u0434\u0440\u043e\u0431\u0438 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u2014 \u043a\u0430\u043a \u0432 \u0434\u0435\u0441\u044f\u0442\u0438\u0447\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0442\u043e\u0447\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c 1\/3 (\u043e\u043d\u0430 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 0,333...).\r\n\r\n\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u043d\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u0445 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \r\n\u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0441\u0442\u0438:\r\n\r\n0.1 + 0.2 \/\/ \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: 0.30000000000000004\r\n\r\n\u042d\u0442\u043e \u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 JavaScript \u2014 \u0442\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \r\n\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0447\u0438\u0441\u0435\u043b \u0432 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442. \u0427\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:\r\n\r\nMath.round((0.1 + 0.2) * 100) \/ 100 \/\/ 0.3\r\n\r\n\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u0441\u0443\u043c\u043c\u0443 \u043d\u0430 100, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \r\n\u043e\u0442 \u0437\u0430\u043f\u044f\u0442\u043e\u0439, \u043f\u043e\u0442\u043e\u043c \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u043c \u0438 \u0434\u0435\u043b\u0438\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e.\r\n\r\n\u0412\u0442\u043e\u0440\u043e\u0439 \u0442\u0438\u043f \u0447\u0438\u0441\u0435\u043b \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0440\u0435\u0434\u043a\u043e \u2014 \r\n\u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0438\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u0447\u0438\u0441\u043b\u0430, \u0432\u044b\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b (\u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c 2\u2075\u00b3 \u2212 1 \u0438\u043b\u0438 \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0435\u043c \u2212(2\u2075\u00b3 \u2212 1)). \u042d\u0442\u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f BigInt. \u0422\u0430\u043a\u0438\u0435 \u0447\u0438\u0441\u043b\u0430 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u0440\u043e\u0431\u043d\u044b\u043c\u0438, \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043b\u044b\u043c\u0438. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u043d \u0432\u043e\u0442 \u0442\u0430\u043a:\r\n\r\nlet big = 1234567890123456789012345678901234567890n;\r\n\r\n\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0432 \u043a\u043e\u043d\u0446\u0435 \u0447\u0438\u0441\u043b\u0430 \u0441\u0442\u043e\u0438\u0442 \r\n\u0431\u0443\u043a\u0432\u0430 n. \u0422\u0430\u043a JavaScript \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0447\u0442\u043e \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e \u0442\u0438\u043f\u0430 BigInt. \r\n\r\n\u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 BigInt \u043d\u0443\u0436\u0435\u043d \u0440\u0435\u0434\u043a\u043e \u2014 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \r\n\u043e\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043d\u0430 \u043d\u0451\u043c \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u043c, \u0430 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0438.\r\n\r\n\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u043e\u0431\u044a\u0435\u043a\u0442 Math \u0432 JavaScript\r\n\r\nMath \u2014 \u044d\u0442\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \r\n\u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438. \u041e\u043d \u0443\u043c\u0435\u0435\u0442 \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0442\u044c \u0447\u0438\u0441\u043b\u0430, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043a\u043e\u0440\u0435\u043d\u044c, \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435.\r\n\r\n\u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 JavaScript, \r\n\u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Math \u043a\u0430\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0433\u043e \u043a\u043e\u043f\u0438\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c new Math() \u2014 \u044d\u0442\u043e \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0443.\r\n\r\n\u0421 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c Math \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \r\n\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0435\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434. \u0412\u043e\u0442 \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442:\r\n\r\nMath.round(1.7); \/\/ \u041e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442 \u0434\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \u0446\u0435\u043b\u043e\u0433\u043e: \r\n2 Math.random(); \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043e\u0442 0 \u0434\u043e 1, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 0.42 Math.PI; \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u03c0 (\u043f\u0438): 3.141592653589793\r\n\r\n\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431 \u0443\u043c\u0435\u043d\u0438\u0438 \r\nMath \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0442\u044c \u0447\u0438\u0441\u043b\u0430.\r\n\r\nMath.floor() \u2014 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0432\u043d\u0438\u0437\r\n\r\n\u041c\u0435\u0442\u043e\u0434 Math.floor() \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u0432\u043d\u0438\u0437 \u2014 \r\n\u0434\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \u0446\u0435\u043b\u043e\u0433\u043e \u043c\u0435\u043d\u044c\u0448\u0435\u0433\u043e \u0438\u043b\u0438 \u0440\u0430\u0432\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u041e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442 \u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0438 \u043d\u0435 \u043f\u0440\u0438\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0435\u0434\u0438\u043d\u0438\u0446\u0443, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0447\u0438\u0441\u043b\u043e \u0431\u043b\u0438\u0437\u043a\u043e \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u0446\u0435\u043b\u043e\u043c\u0443.\r\n\r\nMath.floor(4.9); \/\/ 4 Math.floor(4.1); \/\/ 4\r\n\r\n\u0415\u0441\u043b\u0438 \u0447\u0438\u0441\u043b\u043e \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435, Math.floor() \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \r\n\u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442 \u0432\u043d\u0438\u0437 \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u043a \u043c\u0435\u043d\u044c\u0448\u0435\u043c\u0443 \u0447\u0438\u0441\u043b\u0443:\r\n\r\nMath.floor(-4.1); \/\/ -5 Math.floor(-4.9); \/\/ -5\r\n\r\n\u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0451\u0442\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \r\n\u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0438\u043b\u0438 \u043f\u043e\u0440\u0446\u0438\u0439 \u2014 \u043a\u043e\u0433\u0434\u0430 \u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b.\r\n\r\n\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0443 \u0432\u0430\u0441 23 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f, \u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \r\n\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f 5. \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c?\r\n\r\nlet comments = 23; let perPage = 5; let pages = Math.floor(comments \/ perPage); \r\n\/\/ 4\r\n\r\n\u041e\u0442\u0432\u0435\u0442 \u2014 4 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u041d\u0430 \u043f\u044f\u0442\u043e\u0439 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0431\u044b \r\n\u0442\u043e\u043b\u044c\u043a\u043e 3 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f, \u0430 \u043c\u0435\u0442\u043e\u0434 Math.floor() \u0432\u0435\u0440\u043d\u0451\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446.\r\n\r\nMath.ceil() \u2014 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0432\u0432\u0435\u0440\u0445 \r\n\r\n\u041e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f \r\n\u0434\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \u0446\u0435\u043b\u043e\u0433\u043e:\r\n\r\nMath.ceil(4.1); \/\/ 5 Math.ceil(-4.1); \/\/ -4\r\n\r\n\u041e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0442\u043e\u0436\u0435 \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442\u0441\u044f \u043a \u0431\u043e\u043b\u044c\u0448\u0435\u043c\u0443 \r\n\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u2014 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043d\u0443\u043b\u044f.\r\n\r\n\u0423 \u0432\u0430\u0441 103 \u0437\u0430\u043f\u0438\u0441\u0438, \u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \r\n\u043f\u043e 20 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443. \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0451.\r\n\r\nlet totalItems = 103; let perPage = 20; let totalPages = Math.ceil(totalItems \r\n\/ perPage); \/\/ 6\r\n\r\n\u0414\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f 103 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f 6 \u0441\u0442\u0440\u0430\u043d\u0438\u0446.\r\n\r\nMath.round() \u2014 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438\r\n\r\n\u041c\u0435\u0442\u043e\u0434 Math.round() \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u043f\u043e \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u043c \r\n\u0448\u043a\u043e\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c:\r\n\r\n- \u0415\u0441\u043b\u0438 \u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 0,5, \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442\u0441\u044f \r\n\u0432 \u043c\u0435\u043d\u044c\u0448\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443.\r\n- \u0415\u0441\u043b\u0438 0,5 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u2014 \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442\u0441\u044f \r\n\u0432 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443.\r\n\r\nMath.round(4.4); \/\/ 4 Math.round(4.5); \/\/ 5 Math.round(-4.5); \/\/ -4 Math.round(-4.6); \r\n\/\/ -5\r\n\r\n\u041f\u0440\u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0447\u0438\u0441\u043b\u0430\u0445 \u0432\u0441\u0451 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \r\n\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e. \u0410 \u043f\u0440\u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 Math.round() \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043d\u0443\u043b\u044f, \u0435\u0441\u043b\u0438 \u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0432\u043d\u0430 0,5.\r\n\r\n\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u0432\u0438\u0434\u0435\u043e \u0434\u043b\u0438\u0442\u0441\u044f 95 \u0441\u0435\u043a\u0443\u043d\u0434. \u041f\u043e\u0441\u0447\u0438\u0442\u0430\u0435\u043c, \r\n\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u0432 \u043c\u0438\u043d\u0443\u0442\u0430\u0445:\r\n\r\nlet seconds = 95; let minutes = Math.round(seconds \/ 60); \/\/ 2\r\n\r\n\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u2014 2 \u043c\u0438\u043d\u0443\u0442\u044b. \u041c\u0435\u0442\u043e\u0434 \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u043b \r\n1,58 \u0434\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \u0446\u0435\u043b\u043e\u0433\u043e. \u0415\u0441\u043b\u0438 \u0431\u044b \u0432\u0438\u0434\u0435\u043e \u0434\u043b\u0438\u043b\u043e\u0441\u044c 89 \u0441\u0435\u043a\u0443\u043d\u0434, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0431\u044b \u043c\u0438\u043d\u0443\u0442\u0430.\r\n\r\nMath.trunc() \u2014 \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u043d\u0438\u0435 \u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438\r\n\r\n\u041c\u0435\u0442\u043e\u0434 Math.trunc() \u043d\u0435 \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442 \u0447\u0438\u0441\u043b\u043e, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \r\n\u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u0451, \u0447\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u041e\u043d \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043b\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u2014 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0438\u043b\u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435.\r\n\r\nMath.trunc(4.9); \/\/ 4 Math.trunc(-4.9); \/\/ -4\u041f\u0440\u0438\u043c\u0435\u0440 1: \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b\r\n\r\n\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u044b\u0448\u043a\u043e\u0439 \u0440\u0438\u0441\u0443\u0435\u0442 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \r\n\u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0434\u0440\u043e\u0431\u043d\u044b\u043c\u0438, \u043d\u043e \u043f\u0440\u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0435 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 \u043d\u0443\u0436\u043d\u044b \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430.\r\n\r\nlet x = 99.999; let y = 200.47; ctx.fillRect(Math.trunc(x), Math.trunc(y), \r\n10, 10); \/\/ \u041f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u0447\u043a\u0435 (99, 200)\r\n\r\n\u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Math.trunc(), \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u0439 \r\n\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043d\u0438\u0437.\u041f\u0440\u0438\u043c\u0435\u0440 2: \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445\r\n\r\n\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0441\u043a\u0438\u0434\u043a\u0443 \u221212,95. \r\n\u0414\u043b\u044f \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0430\u0443\u0434\u0438\u0442\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043b\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u2014 \u0431\u0435\u0437 \u043a\u043e\u043f\u0435\u0435\u043a.\r\n\r\nlet discount = -12.95; let intPart = Math.trunc(discount); \/\/ -12\r\n\r\n\u0422\u0430\u043a \u043c\u044b \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u0441\u044f \u043e\u0442 \u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \r\n\u0431\u0435\u0437 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0433\u0440\u0443\u0431\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.\r\n\r\n\u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u0430\u043a\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \r\n\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f\r\n\r\n\u041c\u0435\u0442\u043e\u0434\u044b Math.round(), Math.floor(), Math.ceil() \u0438 Math.trunc() \r\n\u043e\u0431\u044b\u0447\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438. \u041d\u043e JavaScript \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u0433\u0438\u0431\u043a\u043e \u2014 \u0435\u0441\u043b\u0438 \u0432\u044b \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e (\u0438\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e) \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0435 \u0432 \u043d\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0434\u0432\u0438\u0436\u043e\u043a \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u0447\u0438\u0441\u043b\u043e. \u0418\u043d\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0438\u043d\u043e\u0433\u0434\u0430 \u2014 \u043d\u0435\u0442. \u0415\u0441\u043b\u0438 Math \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043a \u0447\u0438\u0441\u043b\u0443, \u043e\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 NaN.\r\n\r\nNaN (\u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 Not-a-Number) \u2014 \u044d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \r\n\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 JavaScript, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u00ab\u043d\u0435 \u0447\u0438\u0441\u043b\u043e\u00bb. \u041e\u043d\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0441 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0434\u0430\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:\r\n\r\n0 \/ 0 \/\/ NaN \u2014 \u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u043b\u044f \u043d\u0430 \u043d\u043e\u043b\u044c Math.sqrt(-1) \/\/ \r\nNaN \u2014 \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u043a\u043e\u0440\u0435\u043d\u044c \u0438\u0437 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 parseInt(\"abc\") \/\/ NaN \u2014 \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0430 \u0432 \u0447\u0438\u0441\u043b\u043e\r\n\r\n\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0432\u0435\u0434\u0443\u0442 \u0441\u0435\u0431\u044f \u0440\u0430\u0437\u043d\u044b\u0435 \r\n\u0442\u0438\u043f\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.\u0421\u0442\u0440\u043e\u043a\u0438\r\n\r\nconsole.log(Math.ceil(\"abc\")); \/\/ NaN console.log(Math.round(\"11.15\")); \r\n\/\/ 11\r\n\r\n\u0415\u0441\u043b\u0438 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0442\u0435\u043a\u0441\u0442, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \r\nNaN. \u0421\u0442\u0440\u043e\u043a\u0443 \u0441 \u0447\u0438\u0441\u043b\u043e\u043c JavaScript \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0447\u0438\u0441\u043b\u0443, \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442. \u0411\u0443\u043b\u0435\u0432\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (true, false)\r\n\r\nconsole.log(Math.ceil(true)); \/\/ 1 console.log(Math.round(false)); \/\/ 0\r\n\r\n\u0411\u0443\u043b\u0435\u0432\u044b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f true \u0438 false \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442\u0441\u044f \r\n\u0432 \u0447\u0438\u0441\u043b\u0430 1 \u0438 0 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e.\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f null, undefined, Nan\r\n\r\n\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 null \u0432 JavaScript \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u00ab\u043f\u0443\u0441\u0442\u043e\u00bb. \r\n\u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u043a\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442.\r\n\r\nlet value = null; console.log(Math.ceil(value)); \/\/ 0\r\n\r\n\u041f\u0440\u0438 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0438 null \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \r\n\u0432 0.\r\n\r\n\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 undefined \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \r\n\u0435\u0441\u0442\u044c, \u043d\u043e \u0432 \u043d\u0435\u0439 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043b\u0435\u0436\u0438\u0442. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0435\u0441\u043b\u0438 \u0432\u044b \u0447\u0442\u043e-\u0442\u043e \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438, \u043d\u043e \u043d\u0435 \u0437\u0430\u0434\u0430\u043b\u0438.\r\n\r\nlet value; console.log(Math.round(value)); \/\/ NaN\r\n\r\n\u0417\u0434\u0435\u0441\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f value \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043d\u043e \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u0442\u044c \r\n\u0435\u0451 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u2014 NaN.\r\n\r\n\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u0442\u044c NaN, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \r\n\u0441\u043d\u043e\u0432\u0430 \u0431\u0443\u0434\u0435\u0442 NaN:\r\n\r\nconsole.log(Math.ceil(NaN)); \/\/ NaN\u0427\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0442\u044c \r\n\u043c\u0430\u0441\u0441\u0438\u0432\r\n\r\n\u0412 JavaScript \u0434\u0430\u0436\u0435 \u043c\u0430\u0441\u0441\u0438\u0432 \u043c\u043e\u0436\u043d\u043e \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u0442\u044c. \r\n\u0417\u0432\u0443\u0447\u0438\u0442 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u043d\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.\r\n\r\n\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0440\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430:\r\n\r\nconsole.log(Math.ceil([5.3])); \/\/ 6 console.log(Math.round([])); \/\/ 0 console.log(Math.ceil([1, \r\n5])); \/\/ NaN\r\n\r\n\u041c\u0430\u0441\u0441\u0438\u0432 [5.3] \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \r\n\u0447\u0438\u0441\u043b\u043e 5.3. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e Math.ceil() \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442 \u0435\u0433\u043e \u0432\u0432\u0435\u0440\u0445, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f 6.\r\n\r\n\u041f\u0443\u0441\u0442\u043e\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 [] \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 0. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \r\n\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f \u2014 \u043d\u043e\u043b\u044c.\r\n\r\n\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u0434\u0432\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: [1, \r\n5]. JavaScript \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0438\u043c\u0435\u043b\u043e\u0441\u044c \u0432 \u0432\u0438\u0434\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u2014 NaN.\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\r\n\r\n\u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u0435 \u0441 \u0432\u0432\u043e\u0434\u043e\u043c \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \r\n\u0432\u0441\u0435\u0433\u0434\u0430 \u044f\u0432\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0435 \u0435\u0433\u043e \u043a \u0447\u0438\u0441\u043b\u0443 \u043f\u0435\u0440\u0435\u0434 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435\u043c:\r\n\r\nlet inputValue = prompt(\"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043b\u043e:\"); Math.floor(Number(inputValue));\r\n\r\n\u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043d\u0435\u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0433\u043e \r\n\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f. NaN \u043e\u043f\u0430\u0441\u0435\u043d, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439:\r\n\r\nlet x = NaN; let y = x + 5; \/\/ \u0422\u043e\u0436\u0435 NaN\r\n\r\n\u041a\u0430\u043a \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u0434\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \r\n\u0437\u043d\u0430\u043a\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439\r\n\r\n\u041c\u0435\u0442\u043e\u0434\u044b Math \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \r\n\u0434\u043e \u0437\u043d\u0430\u043a\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u0427\u0442\u043e\u0431\u044b \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043e 2 \u0437\u043d\u0430\u043a\u043e\u0432, \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432.\u041e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e\r\n\r\n\u0427\u0442\u043e\u0431\u044b \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u0434\u043e n \u0437\u043d\u0430\u043a\u043e\u0432 \r\n\u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439:\r\n\r\n- \u0443\u043c\u043d\u043e\u0436\u0438\u043c \u0435\u0433\u043e \u043d\u0430 10^n \u2014 \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0432\u0438\u043d\u0443\u0442\u044c \r\n\u0437\u0430\u043f\u044f\u0442\u0443\u044e;\r\n- \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435;\r\n- \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 10^n.\r\n\r\n\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u043c \u0447\u0438\u0441\u043b\u043e 1,23789 \u0434\u043e 2 \u0437\u043d\u0430\u043a\u043e\u0432 \r\n\u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439:\r\n\r\nfunction roundTo(num, decimals) { const factor = 10 ** decimals; return \r\nMath.round(num * factor) \/ factor; } \/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u0434\u043e n \u0437\u043d\u0430\u043a\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 roundTo(1.23789, 2); \/\/ 1.24 roundTo(1.234, 1); \/\/ 1.2\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 toFixed(digits)\r\n\r\n\u041c\u0435\u0442\u043e\u0434 toFixed() \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u0434\u043e \u043d\u0443\u0436\u043d\u043e\u0433\u043e \r\n\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0437\u043d\u0430\u043a\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u041e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438: \u0435\u0441\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0446\u0438\u0444\u0440\u0430 5 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u2014 \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u043c \u0432\u0432\u0435\u0440\u0445. \u041d\u043e \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443, \u0430 \u043d\u0435 \u0447\u0438\u0441\u043b\u043e.\r\n\r\nconst num = 5.6789; const result = num.toFixed(2); console.log(result); \r\n\/\/ \"5.68\"\r\n\r\n\u0417\u0434\u0435\u0441\u044c \u0447\u0438\u0441\u043b\u043e \u043e\u043a\u0440\u0443\u0433\u043b\u0438\u043b\u043e\u0441\u044c \u0434\u043e \u0434\u0432\u0443\u0445 \u0437\u043d\u0430\u043a\u043e\u0432 \r\n\u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0441\u0442\u0440\u043e\u043a\u0430 \"5.68\".\r\n\r\n\u0415\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c 0 \u0438\u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c, \r\n\u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0434\u043e \u0446\u0435\u043b\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430:\r\n\r\nconsole.log(num.toFixed(0)); \/\/ \"6\" console.log(num.toFixed()); \/\/ \"6\"\r\n\r\n\u0421\u0442\u0440\u043e\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0447\u0438\u0441\u043b\u043e \r\n\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e parseFloat():\r\n\r\nconst number = parseFloat(result); console.log(number); \/\/ 5.68\r\n\r\n\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0437\u0430\u0434\u0430\u0447, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \r\n\u043c\u0435\u0442\u043e\u0434\u044b \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f\r\n\r\n\u041c\u0435\u0442\u043e\u0434\u044b Math.round, Math.floor, Math.ceil, Math.trunc \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \r\n\u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0412 \u0440\u0430\u0441\u0447\u0451\u0442\u0430\u0445 (\u0444\u0438\u043d\u0430\u043d\u0441\u044b, \u0441\u0440\u0435\u0434\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0441\u043a\u0438\u0434\u043a\u0438):\r\n\r\n\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0432 \u043a\u043e\u0440\u0437\u0438\u043d\u0435 \u0442\u043e\u0432\u0430\u0440 \r\n\u043d\u0430 \u0441\u0443\u043c\u043c\u0443 349,999 \u0440\u0443\u0431\u043b\u044f.\u041d\u0430 \u0442\u043e\u0432\u0430\u0440 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043a\u0438\u0434\u043a\u0430 12,75 \u0440\u0443\u0431\u043b\u044f, \u043d\u043e \u043c\u0430\u0433\u0430\u0437\u0438\u043d \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442 \u0441\u043a\u0438\u0434\u043a\u0443 \u0432\u043d\u0438\u0437 \u0434\u043e \u0446\u0435\u043b\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 (\u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0435\u0440\u0435\u043f\u043b\u0430\u0442\u0438\u0442\u044c). \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0438\u0434\u043a\u0438 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0430 \u0434\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \u0440\u0443\u0431\u043b\u044f.\r\n\r\n\u0428\u0430\u0433\u0438:\r\n\r\n- \u041e\u043a\u0440\u0443\u0433\u043b\u0438\u0442\u044c \u0441\u043a\u0438\u0434\u043a\u0443 \u0432\u043d\u0438\u0437 (Math.floor).\r\n- \u0412\u044b\u0447\u0435\u0441\u0442\u044c \u0441\u043a\u0438\u0434\u043a\u0443 \u0438\u0437 \u0441\u0443\u043c\u043c\u044b.\r\n- \u041e\u043a\u0440\u0443\u0433\u043b\u0438\u0442\u044c \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u0434\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \r\n\u0446\u0435\u043b\u043e\u0433\u043e (Math.round).\r\n\r\n\/\/ \u0418\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 let total = 349.999; \/\/ \u0421\u043a\u0438\u0434\u043a\u0430, \r\n\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 let discount = 12.75; \/\/ \u041e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u043c \u0441\u043a\u0438\u0434\u043a\u0443 \u0432\u043d\u0438\u0437, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u0434\u0435\u043d\u044c\u0433\u0438 let discountApplied = Math.floor(discount); \/\/ 12 \/\/ \u041f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043f\u043e\u0441\u043b\u0435 \u0441\u043a\u0438\u0434\u043a\u0438 let subtotal = total - discountApplied; \/\/ 337.999 \/\/ \u041e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u043c \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u0434\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \u0440\u0443\u0431\u043b\u044f let finalTotal = Math.round(subtotal); \/\/ 338 \/\/ \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 console.log(`\u0418\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043a \u043e\u043f\u043b\u0430\u0442\u0435: ${finalTotal} \u0440\u0443\u0431.`); \/\/ \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: \"\u0418\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043a \u043e\u043f\u043b\u0430\u0442\u0435: 338 \u0440\u0443\u0431.\"UI \u0438 frontend (\u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430, \u0440\u0430\u0437\u043c\u0435\u0440\u044b, \u0448\u0440\u0438\u0444\u0442\u044b)\r\n\r\n\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u0447\u0442\u043e \u0432\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0435 \u0432\u0451\u0440\u0441\u0442\u043a\u0443 \r\n\u0441\u0435\u0442\u043a\u0438 \u0441 \u0442\u0440\u0435\u043c\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c\u0438 \u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b:\r\n\r\n- \u041a\u043e\u043b\u043e\u043d\u043a\u0438 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b\u0438\u0441\u044c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440.\r\n- \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0431\u044b\u043b \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d \r\n\u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438.\r\n\r\n\u0420\u0430\u0441\u0447\u0451\u0442 \u0448\u0438\u0440\u0438\u043d\u044b \u043a\u043e\u043b\u043e\u043d\u043a\u0438:\r\n\r\nlet containerWidth = 799.8; \/\/ \u0428\u0438\u0440\u0438\u043d\u0430 \u0432\u0441\u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \r\n(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 px) let columnCount = 3; \/\/ \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043b\u043e\u043d\u043e\u043a let columnWidth = Math.floor(containerWidth \/ columnCount); \/\/ 266 px console.log(`\u0428\u0438\u0440\u0438\u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438: ${columnWidth}px`); \/\/ \u0428\u0438\u0440\u0438\u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438: 266 px\r\n\r\n\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435:\r\n\r\n- \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u0448\u0438\u0440\u0438\u043d\u0443 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438:\r\n\r\n799.8 \/ 3 = 266.6.\r\n\r\n- \u041e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u043c \u0432\u043d\u0438\u0437, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0442\u0440\u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \r\n\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b\u0438\u0441\u044c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440:\r\n\r\nMath.floor(266.6) = 266.\r\n\r\n- \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043e\u0442\u0432\u0435\u0442:\r\n\r\n266 \u00d7 3 = 798 (\u0432\u0441\u0451 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f).\r\n\r\n1,8 \u043f\u0438\u043a\u0441\u0435\u043b\u044f \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u2014 \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \r\n\u043a\u0430\u043a \u043e\u0442\u0441\u0442\u0443\u043f\u044b \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c\u0438.\u0426\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438\r\n\r\n\u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0431\u043b\u043e\u043a \u0448\u0438\u0440\u0438\u043d\u043e\u0439 \r\n800 px \u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0448\u0438\u0440\u0438\u043d\u043e\u0439 375 px. \u041d\u0443\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0438 \u0432\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438. \r\n\r\n\u0420\u0435\u0448\u0435\u043d\u0438\u0435:\r\n\r\nlet parentWidth = 800; \/\/ \u0428\u0438\u0440\u0438\u043d\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \r\nlet childWidth = 375; \/\/ \u0428\u0438\u0440\u0438\u043d\u0430 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 let left = Math.round((parentWidth - childWidth) \/ 2); \/\/ 213 px console.log(`\u041b\u0435\u0432\u044b\u0439 \u043e\u0442\u0441\u0442\u0443\u043f \u0434\u043b\u044f \u0446\u0435\u043d\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f: ${left}px`);\r\n\r\n\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435:\r\n\r\n- \u041d\u0430\u0439\u0434\u0451\u043c \u043b\u0435\u0432\u044b\u0439 \u043e\u0442\u0441\u0442\u0443\u043f \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \r\n\u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430: \r\n\r\n(800 \u2212 375) \/ 2 = 212.5.\r\n\r\n- \u041e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \r\n\u0446\u0435\u043b\u043e\u0433\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u044f, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u00ab\u0440\u0430\u0437\u043c\u044b\u0442\u044b\u0445\u00bb \u043a\u0440\u0430\u0451\u0432 \u0438\u043b\u0438 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f.\r\n\r\nMath.round(212.5) = 213 px.\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u043c\u0438\r\n\r\n\u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043b\u0430\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \r\n(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0440\u0443\u0436\u043e\u043a) \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e. \u041a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430 x \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435 \u2014 \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0440\u043e\u0431\u043d\u043e\u0439, \u043d\u043e CSS left \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439. \u0415\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0442\u044c \u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0440\u0430\u0437\u043c\u044b\u0442\u043e \u0438\u043b\u0438 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0434\u0440\u043e\u0436\u0430\u043d\u0438\u0435.\r\n\r\n\u0420\u0435\u0448\u0435\u043d\u0438\u0435:\r\n\r\nlet x = 123.78; \/\/ \u0422\u0435\u043a\u0443\u0449\u0430\u044f \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0438\u0437 \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \/\/ \r\n\u041e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0443 \u0434\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e \u0446\u0435\u043b\u043e\u0433\u043e element.style.left = Math.round(x) + \"px\"; \/\/ \"124px\"\r\n\r\n\u041e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435:\r\n\r\n- x = 123.78 \u2014 \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \r\n\u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u043b\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438.\r\n- \u041e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u043c \u0434\u043e \u0446\u0435\u043b\u043e\u0433\u043e: Math.round(x) = 124.\r\n- CSS \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0447\u0451\u0442\u043a\u0438\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 element.style.left \r\n= 124px.\r\n\r\n\u0415\u0441\u043b\u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b (123.78px), \r\n\u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0440\u0430\u0437\u043c\u044b\u0442\u043e \u0438\u043b\u0438 \u0434\u0440\u043e\u0436\u0430\u0442\u044c \u043f\u0440\u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0438.\r\n\r\n\u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0438 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0438\r\n\r\n\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0430\u0441\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u044e\u0442 \r\n\u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 Math.\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Math.round()\r\n\r\n\u0418\u043d\u043e\u0433\u0434\u0430 \u043d\u043e\u0432\u0438\u0447\u043a\u0438 \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Math.round() \r\n\u0441 \u0434\u0432\u0443\u043c\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438.\r\n\r\nMath.round(1.2345, 2) \/\/ 1\r\n\r\n\u042d\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u2014 Math.round \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \r\n\u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e \u0447\u0438\u0441\u043b\u043e. \u0412\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f.\r\n\r\n\u0420\u0435\u0448\u0435\u043d\u0438\u0435: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442.\r\n\r\nMath.round(1.2345 * 100) \/ 100 \/\/ 1.23\u041e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \r\n\u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0434\u0440\u043e\u0431\u044f\u043c\u0438\r\n\r\n\u0418\u043d\u043e\u0433\u0434\u0430 \u043d\u043e\u0432\u0438\u0447\u043a\u0438 \u0434\u0443\u043c\u0430\u044e\u0442, \u0447\u0442\u043e \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0448\u0438\u0442 \r\n\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439:\r\n\r\n\/\/ \u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435: Math.round(0.1 + 0.2) === \r\n0.3; \/\/ false (0.30000000000000004 \u043e\u043a\u0440\u0443\u0433\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e 0)\r\n\r\n\u0420\u0435\u0448\u0435\u043d\u0438\u0435: \u043d\u0443\u0436\u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \r\n\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c.\r\n\r\nconst sum = 0.1 + 0.2; Math.round(sum * 10) \/ 10 === 0.3; \/\/ true\r\n\r\n\r\n\r\n \r\n\r\n \r\n\r\n\r\n\u0411\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e \u043a\u043e\u0434 \u2014 \u0432 \u043d\u0430\u0448\u0435\u043c \r\n\u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c-\u043a\u0430\u043d\u0430\u043b\u0435 . \u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c!\r\n\r\n\r\n\r\n\r\n\r\n\u0427\u0438\u0442\u0430\u0439\u0442\u0435 \u0442\u0430\u043a\u0436\u0435:\r\n\r\n- \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 JavaScript \u0438 \u0437\u0430\u0447\u0435\u043c \u043e\u043d \u043d\u0443\u0436\u0435\u043d \r\n \r\n- \u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0432 JavaScript \r\n \r\n- \u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 JavaScript: \u043a\u0430\u043a \u0438\u0445 \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0442\u044c, \r\n\u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a ","author":{"@type":"Person","name":"\u041c\u0430\u0440\u0438\u043d\u0430 \u0414\u0435\u043c\u0438\u0434\u043e\u0432\u0430","url":"https:\/\/skillbox.ru\/media\/authors\/marina-demidova\/"},"publisher":{"@type":"Organization","name":"Skillbox","logo":{"@type":"ImageObject","url":"https:\/\/skillbox.ru\/static\/images\/skillbox.png"}},"mainEntityOfPage":{"@type":"WebPage","url":"https:\/\/skillbox.ru\/media\/code\/math-round-floor-ceil-i-trunc-v-javascript-rukovodstvo-po-okrugleniyu-chisel-v-js\/"},"datePublished":"2025-08-22T07:16:00Z","dateModified":"2025-08-22T11:26:50Z","image":{"@type":"ImageObject","url":["https:\/\/248006.selcdn.ru\/main\/iblock\/14c\/14cd2787a16c8f4cc4df597e55a39968\/b96051797d69d256ade98517fcace1ce.png"]},"description":"\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u043c\u0435\u0442\u043e\u0434\u0430\u0445 \u043e\u043a\u0440\u0443\u0433\u043b\u0435\u043d\u0438\u044f \u0432 JavaScript: \u0432 \u043c\u0435\u043d\u044c\u0448\u0443\u044e \u0438 \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u0434\u043e \u0446\u0435\u043b\u043e\u0433\u043e, \u0434\u043e \u0441\u043e\u0442\u044b\u0445."}
</script><script data-skip-moving="true" id="FiMjZmipVK5U4ODg">if (window.relap) window.relap.ar('FiMjZmipVK5U4ODg');</script> </div>
<script>
window.Section_id = 10;
</script>
</div>
</main>
<footer class="without-buttons">
<div class="footer__wrapper container">
<div class="footer__firstgroup">
<section class="footer__contactbox">
<address class="footer__contacts">
<p class="footer__contacts-block">
<a class="footer__phone link" href="tel:+74951540915">8 (800) 500-05-22</a>
<span class="footer__phone-caption">Контактный центр</span>
</p>
<p class="footer__contacts-block">
<a class="footer__phone link" href="tel:+74952915987">+7(495) 291-59-87</a>
<span class="footer__phone-caption">Отдел заботы о пользователях</span>
</p>
<p class="footer__address"> Москва, Ленинский проспект, дом 6, строение 20</p>
</address>
<ul class="social-contacts footer__social">
<li>
<a class="social-contacts__item" href="https://vk.com/skillbox_education"
aria-label="Вконтакте">
<img src="/static/images/footer/soc_vk.svg"/>
</a>
</li>
<li>
<a class="social-contacts__item"
href="https://www.youtube.com/channel/UC2FJq-Rr7v4SlKAoM7x0ZhA" aria-label="YouTube">
<img src="/static/images/footer/soc_tube.svg"/>
</a>
</li>
<li>
<a class="social-contacts__item" href="tg://resolve?domain=skillboxru"
aria-label="Telegram">
<img src="/static/images/footer/soc_tg.svg"/>
</a>
</li>
</ul>
<div class="footer__age-limit">
16+
</div>
</section>
<section class="footer__rewardbox">
<ul class="rewards footer__rewards">
<li>
<span class="rewards__item">
<img src="/static/images/footer/footer_runet.svg" alt=""/>
<span>Премии Рунета</span>
<span>2018, 2019, 2020</span>
</span>
</li>
</ul>
</section>
</div>
<section class="footer__linksbox">
<ul class="links__list links__list--courses">
<li class="links__item links__item--header">Все направления</li>
<li class="links__item"><a href="/code/?utm_source=media&utm_medium=button&utm_campaign=footerlink_code&utm_term=footer">Программирование</a></li>
<li class="links__item"><a href="/design/?utm_source=media&utm_medium=button&utm_campaign=footerlink_design&utm_term=footer">Дизайн</a></li>
<li class="links__item"><a href="/marketing/?utm_source=media&utm_medium=button&utm_campaign=footerlink_marketing&utm_term=footer">Маркетинг</a></li>
<li class="links__item"><a href="/management/?utm_source=media&utm_medium=button&utm_campaign=footerlink_management&utm_term=footer">Управление</a></li>
<li class="links__item"><a href="/games/?utm_source=media&utm_medium=button&utm_campaign=footerlink_gamedev&utm_term=footer">Игры</a></li>
<li class="links__item"><a href="/multimedia/?utm_source=media&utm_medium=button&utm_campaign=footerlink_multimedia&utm_term=footer">Мультимедиа</a></li>
<li class="links__item"><a href="/psychology/?utm_source=media&utm_medium=button&utm_campaign=footerlink_psychology&utm_term=footer">Психология</a></li>
<li class="links__item"><a href="/general-development/?utm_source=media&utm_medium=button&utm_campaign=footerlink_general-development&utm_term=footer">Общее развитие</a></li>
<li class="links__item"><a href="/engineering/?utm_source=media&utm_medium=button&utm_campaign=footerlink_engineering&utm_term=footer">Инженерия</a></li>
<li class="links__item"><a href="/english/?utm_source=media&utm_medium=button&utm_campaign=footerlink_english&utm_term=footer">Английский язык</a></li>
<li class="links__item"><a href="/other/?utm_source=media&utm_medium=button&utm_campaign=footerlink_other&utm_term=footer">Другое</a></li>
</ul>
<ul class="links__list links__list--about">
<li class="links__item links__item--header">О Skillbox</li>
<li class="links__item"><a href="/company/?utm_source=media&utm_medium=button&utm_campaign=footerlink_aboutskillbox&utm_term=footer">О Платформе</a></li>
<li class="links__item"><a href="/career/?utm_source=media&utm_medium=button&utm_campaign=footerlink_careercentr&utm_term=footer"> Центр карьеры</a></li>
<li class="links__item"><a href="/otzyvy/?utm_source=media&utm_medium=button&utm_campaign=footerlink_testimonials&utm_term=footer">Отзывы</a></li>
<li class="links__item"><a href="/contacts/?utm_source=media&utm_medium=button&utm_campaign=footerlink_skillboxcontacts&utm_term=footer">Контакты</a></li>
<li class="links__item"><a href="/jobs/?utm_source=media&utm_medium=button&utm_campaign=footerlink_jobs&utm_term=footer">Вакансии</a></li>
<li class="links__item"><a href="/teachers/?utm_source=media&utm_medium=button&utm_campaign=footerlink_school&utm_term=footer">Школа кураторов</a></li>
<li class="links__item"><a href="/sale/free/?utm_source=media&utm_medium=button&utm_campaign=footerlink_free&utm_term=footer">Бесплатно</a></li>
<li class="links__item"><a href="/media/topic/tests/?utm_source=media&utm_medium=button&utm_campaign=footerlink_tests&utm_term=footer">Онлайн-тесты</a></li>
</ul>
<ul class="links__list links__list--webinar">
<li class="links__item links__item--header">Вебинары</li>
<li class="links__item"><a href="https://live.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_webinars&utm_term=footer" target="_blank" rel="noopener">Все вебинары</a></li>
<li class="links__item"><a href="https://live.skillbox.ru/playlists/?utm_source=media&utm_medium=button&utm_campaign=footerlink_playlists&utm_term=footer" target="_blank" rel="noopener">Плейлисты</a></li>
<li class="links__item"><a href="https://live.skillbox.ru/calendar/?utm_source=media&utm_medium=button&utm_campaign=footerlink_schedule&utm_term=footer" target="_blank" rel="noopener">Расписание</a></li>
</ul>
<ul class="links__list links__list--last">
<li class="links__item links__journal"><a href="/media/" target="_blank" rel="noopener">Медиа</a></li>
<li class="links__item"><a href="https://partners.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_partners&utm_term=footer" target="_blank" rel="noopener">Партнерская программа</a></li>
<li class="links__item"><a href="https://b2b.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_b2b&utm_term=footer" target="_blank" rel="noopener">Корпоративным клиентам</a></li>
<li class="links__item"><a href="https://career.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_employees&utm_term=footer" target="_blank" rel="noopener">Для работодателей</a></li>
</ul>
</section>
</div>
<div class="footer__underline container">
<span class="footer__copy">
© Skillbox, 2026 </span>
<div>
<span class="footer__oferta">
<a href="/oferta.pdf" target="_blank">Договор оферты</a>
</span>
<span class="footer__payment">
<a href="/payments/" target="_blank">Оплата</a>
</span>
<span class="footer__use-policy">
<a href="/terms_of_use.pdf" target="_blank">Правила пользования Платформой</a>
<a href="/privacy_policy.pdf" target="_blank">Политика конфиденциальности</a>
</span>
</div>
</div>
</footer>
<div class="cookies">
<p class="cookies__desc">
Пользуясь нашим сайтом, вы соглашаетесь с тем, что
<a href="https://skillbox.ru/privacy_policy.pdf" target="_blank" rel="noopener"
type="application/pdf">мы используем cookies</a> 🍪
</p>
<button type="button" class="cookies__button">
Окей
</button>
</div>
<div class="subscribe-popup subscribe">
<div class="subscribe-popup__spacer-mobile"></div>
<div class="subscribe-popup__row-content ">
<button class="subscribe__close"></button>
<div class="subscribe__content">
<div data-subscribe-popup-success class="hidden">
<h2 class="subscribe__header-success">Спасибо за подписку! Забирайте 5 бесплатных курсов:</h2>
<ul class="subscribe__list-block">
<li>Найти себя в IT за 5 дней</li>
<li>Как найти себя в дизайне в 2025 году</li>
<li>Интерьеры, мебель, ландшафт и декорирование</li>
<li>Интернет-маркетинг на практике</li>
<li>Бизнес-аналитик, продакт- и проджект-менеджер</li>
</ul>
<div class="subscribe__btns-el">
<a
target="_blank"
href="https://refer.id/?bot=skillbox_main_bot&platform=telegram&verbose_name=Skillbox&bot_avatar=https://designer.ftrcdn.com/uploads/bot_avatars/medium_54ab1ce8c393eb3df1474846ce0a0e2c.png&n=137050&c=9209&bc_number=890&?utm_source=media&utm_medium=&utm_campaign=all_all_media_banners_invite_sbornik-890_all_bot_skillbox"
class="subscribe__el-btn">Получить доступ</a>
</div>
</div>
<div data-subscribe-popup-content>
<h2 class="subscribe__header">У нас есть классные рассылки!</h2>
<form action="/media/code/math-round-floor-ceil-i-trunc-v-javascript-rukovodstvo-po-okrugleniyu-chisel-v-js/" class="newsletter-form page-subscription__form3" data-type="popup">
<input type="hidden" name="action" value="subscribe">
<div class="subscribe__checkboxes"></div>
<div class="subscribe__email email_popup">
<input class="subscribe-form__input" type="text" name="email" placeholder="Email" >
<span class="subscribe-form__label-name">Электронная почта</span>
<button type="submit" class="popup-btn-click">Подписаться</button>
<span class="email__error">Поле необходимо заполнить</span>
</div>
<div class="subscribe-popup__checkbox-end">
<div class="subscribe-popup__checkbox-item" data-checkbox-personal-data>
<div class="subscribe__checkbox">
<input type="checkbox" name="agreements[PERS]" id="isCheckTrue" value="1" data-checkbox-personal-data-input>
<label for="isCheckTrue"><span>Я согласен на <a target="_blank" href="https://skillbox.ru/legal-docs/chou/file/privacy_policy/version-290425.pdf">обработку персональных данных</a></span></label>
</div>
<span class="email__error">Нужно ваше согласие</span>
</div>
<div class="subscribe__bottom">
<span>Нажимая на кнопку, я соглашаюсь с <a target="_blank" href="https://skillbox.ru/legal-docs/skillbox/file/terms_of_use/version-300824.pdf">правилами пользования Платформой</a></span>
</div>
<div class="subscribe-popup__checkbox-item" data-checkbox-personal-data-two>
<div class="subscribe__checkbox subscribe__checkbox--end" >
<input type="checkbox" name="agreements[ADS]" id="isAdsCalls" value="1" checked="" data-checkbox-personal-data-input-two>
<label for="isAdsCalls">Я согласен <a target="_blank" href="https://skillbox.ru/legal-docs/chou/file/soglasie-na-poluchenie-reklamy.pdf">получать рекламу и звонки</a></label>
</div>
<span class="email__error">Нужно ваше согласие</span>
</div>
</div>
</form>
</div>
</div>
</div>
<!-- src="/static/images/articles/subscribe-popup-img.png" -->
</div>
<div class="bg-modal-overlay bg-modal-overlay--transparent"></div>
<script data-skip-moving="true" id="popup__data--formatted">
$(".popup-btn-click").on("click" , function (){
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
let input = $(this).closest(".subscribe__email").find(".subscribe-form__input");
let inputValue = input.val();
if(emailPattern.test(inputValue)) {
(window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() { rrApi.setEmail(inputValue);});
}
});
/*
window.popupData = {
"8": {
header: 'У нас есть классные рассылки про дизайн!!!',
category: 'Дизайн',
checkboxes: [
'Лучшие статьи про Дизайн',
'«Типографика без боли»'
]
},
"10": {
header: 'У нас есть классные рассылки про код',
category: 'Код',
checkboxes: [
'Лучшие статьи про Код и Людей кода',
'«Жизнь без багов»'
]
},
"18": {
category: 'Геймдев',
checkboxes: []
},
"21": {
header: 'У нас есть классные рассылки про бизнес',
category: 'Бизнес',
checkboxes: [
'Лучшие статьи про Бизнес',
'«Цифровая жизнь»',
'«EdTech по полочкам»'
]
},
"9": {
header: 'У нас есть классные рассылки про бизнес',
category: 'Маркетинг',
checkboxes: [
'Лучшие статьи про Бизнес',
'«Цифровая жизнь»',
'«EdTech по полочкам»'
]
},
"11": {
header: 'У нас есть классные рассылки про бизнес',
category: 'Управление',
checkboxes: [
'Лучшие статьи про Бизнес',
'«Цифровая жизнь»',
'«EdTech по полочкам»'
]
},
"17": {
category: 'Развитие',
checkboxes: []
},
"22": {
header: 'У нас есть классные рассылки про образование',
category: 'Образование',
checkboxes: [
'Лучшие статьи про Образование',
'«EdTech по полочкам»',
'«Мой успешный онлайн-курс»'
]
},
}
*/
window.popupData = {"header":"\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 - \u043d\u0430 \u043f\u043e\u0447\u0442\u0443!\u003Cbr\/\u003E\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0435\u043c\u0443 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438\u003Cbr\/\u003E\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 5 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u043a\u0443\u0440\u0441\u043e\u0432:","category":"\u041a\u043e\u0434","checkboxes":{"23":"\u041c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442","24":"\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433","26":"\u041a\u043e\u0440\u043f. \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435","13":"\u0414\u0438\u0437\u0430\u0439\u043d","16":"\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","15":"\u041e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","17":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u0433\u0440","18":"\u041f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f, \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e"},"code":"code","scroll":true};
window.subscribePopupShow = 1;
</script>
<div class="copied">
<img src="/static/images/articles/done-circle.svg" alt="" class="copied__icon">
<p class="copied__text">
Ссылка скопирована
</p>
</div>
<!-- <style>@font-face{font-display:swap;font-family:Graphik;font-weight:500;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Graphik;font-weight:700;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Bold.woff2) format("woff2")}.universal-notice{box-sizing:border-box;text-decoration:none;display:none;min-height:48px;color:var(--banner-color);background-color:var(--banner-bg);overflow:hidden;font-family:Graphik,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transition:opacity .25s ease-in-out;transition:opacity .25s ease-in-out}.universal-notice *{box-sizing:inherit}.universal-notice.universal-notice--active{display:block}.universal-notice--bitrix{z-index:1000}.universal-notice__wrapper{position:relative;-webkit-box-pack:start;justify-content:flex-start;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-left:12px;padding:4px 0}.universal-notice__title{position:relative;flex-shrink:0;width:132px;margin-right:27px;font-size:14px;line-height:20px;text-transform:uppercase}.universal-notice__timer{display:none;margin:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.universal-notice__button{flex-shrink:0;min-width:120px;padding:8px 12px;border-radius:25px;font-weight:500;font-size:12px;line-height:16px;color:#3925b7;text-align:center;text-transform:uppercase;background-color:#ffa6a6}@media (min-width:768px){.universal-notice{min-height:72px}.universal-notice__wrapper{-webkit-box-pack:center;justify-content:center;height:72px;margin:0}.universal-notice__title{width:252px;margin-right:32px;margin-left:20px;font-size:24px;line-height:32px}.universal-notice__button{min-width:200px;margin-right:20px;padding:14px 36px;font-size:16px;line-height:20px}}@media (min-width:768px) and (max-width:0px){.universal-notice{min-height:72px}.universal-notice__wrapper{-webkit-box-pack:center;justify-content:center;height:72px;margin:0}.universal-notice__title{width:252px;margin-right:32px;margin-left:20px;font-size:24px;line-height:32px}.universal-notice__button{min-width:200px;margin-right:20px;padding:14px 36px;font-size:16px;line-height:20px}}@media (min-width:1280px) and (max-width:0px){.universal-notice__wrapper{padding:0}.universal-notice__title{width:unset;margin-right:76px}.universal-notice__timer{flex-shrink:0;margin-right:32px;font-weight:700;font-size:24px;line-height:32px}.universal-notice__timer.js-universal-notice-active{display:-webkit-box;display:flex}.universal-notice__days{margin-right:5px}}@media (min-width:1280px){.universal-notice__wrapper{padding:0}.universal-notice__title{width:unset;margin-right:76px}.universal-notice__timer{flex-shrink:0;margin-right:32px;font-weight:700;font-size:24px;line-height:32px}.universal-notice__timer.js-universal-notice-active{display:-webkit-box;display:flex}.universal-notice__days{margin-right:5px}}</style>-->
</body>
</html>