Для упрощения работы с числами в javaScript существует ряд математических функций, позволяющих быстро находить решение.
Далее мы будем изучать каждую функцию в отдельности.
Функция Math.abs
Функция Math.abs возвращает модуль числа, то есть из отрицательного числа делает положительное.
Пример:
В данном примере будет выведен модуль числа -7:
document.write(Math.abs(-7));
Результат: 7
Задача
Есть две переменные i и d. Найдите модуль разности i и d.
Функция Math.round
Функция Math.round выполняет округление до ближайшего целого числа по правилам математического округления.
Пример:
Округлим до целых число 3.4:
document.write(Math.round(3.4));
Результат: 3
Функция Math.ceil
Функция Math.ceil производит округление числа до целых всегда в большую сторону.
Пример:
Округлим число 5.00001 в большую сторону:
document.write(Math.ceil(5.00001));
Результат: 6
Функция Math.floor
Функция Math.floor производит округление числа до целых всегда в меньшую сторону.
Пример:
Округлим число 2.9999 в меньшую сторону:
document.write(Math.floor(2.9999));
Результат: 2
Функция Math.min
Функция Math.min возвращает минимальное число из группы чисел, переданных в функцию.
Если в функцию ничего не передано, то будет возращено Infinity. (Значение Infinity обозначает бесконечность, причем Infinity - положительная бесконечность (равна 1/0), а -Infinity - отрицательная бесконечность (равна -1/0).)
Пример: минимальное число из группы чисел 40, 20, 42, 100, 67:
document.write(Math.min(40, 20, 42, 100, 67));
Результат: 20
Задача
найти и показать минимальное число из чисел -2, -200, -40, -35, 50
Функция Math.max
Функция Math.max возвращает максимальное число из группы чисел, переданных в функцию.
Если в функцию ничего не передано, то будет возращено Infinity.
Пример: максимальное из группы чисел 1, 5, 10, 34, 100:
document.write(Math.max(1, 5, 10, 34, 100));
Результат: 100
Задача
Вывести максимальное число из группы чисел -1, 0, -20, -56, -100
Функция Math.sqrt
Функция Math.sqrt возвращает квадратный корень числа.
Если передано отрицательное число, результат будет NaN (не число).
Пример: вывести квадратный корень из 4:
document.write(Math.sqrt(4));
Результат 2
Задача
Найдите квадратный корень из 587. Округлите результат в большую и меньшую стороны. Выведите на экран.
Функция Math.pow
Функция Math.pow возводит число в заданную степень. Первым параметром передается число, вторым - в какую степень его возвести.
Пример: возвести число 3 в степень 4
document.write(Math.pow(3, 4));
Результат 81
Функция Math.random
Функция Math.random возвращает случайное дробное число от 0 до 1.
Пример случайное число от 0 до 1
document.write(Math.random());
Результат будет у каждого свой
Чтобы получить случайно число в определенном промежутке (дробное или целое) следует и пользоваться специальными приемами:
Случайное дробное число между min и max:
Случайное целое между min и max:
Функция isNaN
Функция isNaN проверяет, является ли переданный параметр числом или нет.
Функция вернет true, если параметр не является числом и false, если является.
Как она работает: переданный параметр преобразуется к числу. Если это не число (строка, массив и т.п.), то он преобразуется в NaN. Ну, а isNaN проверяет - NaN у нас получился после преобразования или нет.
пример функции isNaN
В данном примере будет выведено false, так как параметр является числом:
Функция isFinite
Функция isFinite для проверки параметра на то, что он является конечным числом (то есть не строкой, массивом и т.п. и не плюс или минус бесконечностью).
Как работает эта функция: она вернет false, если число является плюс или минус бесконечностью (то есть Infinity или -Infinity) или не числом (то есть NaN), в остальных случаях вернет true.
То есть строки, массивы и т.п. будут преобразованы в NaNи соответственно вернут false.
Однако есть исключения: пустая строка ‘ ' возвращает true, строка с пробелами ' ' также возвращает true, null возвращает true, для значений true и false также возвращается true.
Это происходит потому, что эти значения корректно преобразуются в числа (а не в NaN).
Пример:
const num = 3;
document.write(isFinite(num));
Функция isNumeric
Если вам нужна действительно точная проверка на число, которая не считает числом строку из пробелов, логические и специальные значения - используйте следующую функцию isNumeric:
Функция isFinite преобразует параметр к числу и возвращает true, если это не Infinity, -Infinity или NaN.
Таким образом, правая часть отсеет заведомо "нечисло", но оставит такие значения как true, false, null, пустую строку '' и строку с пробелами, т.к. они корректно преобразуются в числа.
Чтобы отсеять эти значения, нужна функция parseFloat, которая для true, false, null, '', ' ' вернет NaN.
Так устроена функция parseFloat: она преобразует параметр к строке, т.е. true, false, null становятся "true", "false", "null", а затем считывает из нее число, при этом пустая строка и строка с пробелами дают NaN.
Затем результат parseFloat обрабатывается с помощью !isNaN, чтобы получить true или false вместо NaN.
В результате отсеивается все, кроме строк-чисел и обычных чисел.
Функция parseInt
Функция parseInt преобразует строку в целое число.
Это нужно для значений типа '12px' - когда вначале стоит число, а потом единицы измерения. Если применить функцию parseInt к '12px', то результатом получится число 12 (и это будет действительно число, а не строка).
Преобразование произойдет, если только целое число стоит в начале строки, иначе будет выведено NaN.
Вторым параметром можно указать систему счисления числа, и функция вернет число, переведенное из указанной системы счисления в десятичную.
Синтаксис:
const str = '10px';
document.write(parseInt(str));
Результат: 10
Пример:
var str = '10.3px';
document.write(parseInt(str));
Результат: 10 дробная часть откинута.
Функция parseFloat
Функция parseFloat преобразует строку в число с плавающей точкой.
Это нужно для значений типа '12.5px' - когда вначале стоит число, а потом единицы измерения. Если применить функцию parseFloat к '12.5px', то результатом получится число 12.5 (и это будет действительно число, а не строка).
Преобразование произойдет, если только целое число стоит в начале строки, иначе будет выведено NaN.
Вторым параметром можно указать систему счисления числа, и функция вернет число, переведенное из указанной системы счисления в десятичную.
Пример:
var str = '10.3px'; document.write(parseFloat(str));
Результат: 10.3
Метод toFixed
Метод toFixed производит округление числа до указанного знака в дробной части.
Количество знаков указывается параметром.
Если число знаков не указано, то по умолчанию берется 0 знаков, то есть округление до целого числа.
Параметр метода также может быть отрицательным, в этом случае округлятся будут не знаки в дробной части, а знаки в целой части. К примеру, значение -2 округлит число 12345.6789 в число 12300.
Пример 1:
const num = 1.1111;
document.write(num.toFixed(3));
Результат: 1.111
Пример 2:
const num = 1.1119;
document.write(num.toFixed(3));
Результат: 1.112 округлилась в большую строну
Задачи
1. Возведите 3 в 20 степень. Результат запишите в переменную result
2. Найдите квадратный корень из 245.
3. Есть массив с числами 3, 4, 6, 20, 14, 0, 20. Найдите квадратный корень из суммы кубов чисел. Для решения используйте цикл for.
4. Найдите квадратный корень из 256, округлите до целых, до десятых, до сотых.
5. Необходимо найти квадратный корень из 576. Результат округлите сначала в большую потом в меньшую стороны и запишите в объект с ключами 'num1' и 'num2'.