Математические функции в JavaScript

Математические функции в JavaScript

Создание и раскрутка сайтов

Вбиваю в ТОП-10, как гвозди

8-965-148-98-02, diplom07@mail.ru

Создание и раскрутка сайтов

Вбиваю в ТОП-10, как гвозди

8-965-148-98-02, diplom07@mail.ru

Математические функции в JavaScript

Математические функции в JavaScript

www.homa.xp3.biz

Теория

Методы и функции: Math.abs, Math.round, Math.ceil, Math.floor, Math.min, Math.max, Math.sqrt, Math.pow, Math.random, isNaN, isFinite, parseInt, parseFloat, toFixed.

Функция Math.abs

Функция Math.abs возвращает модуль числа, т.е. из отрицательного числа делает положительное.

Синтаксис: Math.abs(число).

Пример

Будет выведен модуль числа -3:

document.write(Math.abs(-3))

Пример

Будет выведен модуль числа 3:

document.write(Math.abs(3))

Функция Math.round

Функция Math.round выполняет округление до ближайшего целого числа по правилам математического округления.

Синтаксис: Math.round(число).

Пример

Округлить до целых число 6.4:

document.write(Math.round(6.4))

Пример

Округлить до целых число 6.6:

document.write(Math.round(6.6))

Пример

Округлить до целых число 6.5:

document.write(Math.round(6.5))

Пример

Округлить до целых число 6.49999:

Функция Math.ceil

Функция Math.ceil производит округление числа до целых всегда в большую сторону.

Синтаксис: Math.ceil(число).

Пример

Округлить число 3.00001 в большую сторону:

document.write(Math.ceil(3.00001))

Функция Math.floor

Функция Math.floor производит округление числа до целых всегда в меньшую сторону.

Синтаксис: Math.floor(число).

Пример

Округлить число 2.9999 в меньшую сторону:

document.write(Math.floor(2.9999))

Функция Math.min

Функция Math.min возвращает минимальное число из группы чисел, переданных в функцию.

Если в функцию ничего не передано, то будет возращено Infinity.

По умолчанию функция не работает с массивами, однако с помощью хитрого приема можно найти минимальное значение массива: Math.min.apply(null,a), где a - произвольный массив.

Синтаксис: Math.min(число,число,число,…).

Пример

Будет выведено минимальное число из группы чисел 40,8,42,88,67:

document.write(Math.min(40,8,42,88,67))

Пример

Будет выведено минимальное число из группы чисел -1,-88,-8,-25,40:

document.write(Math.min(-1,-88,-8,-25,40))

Пример

Будет выведено Infinity, т.к. функции не передали параметров:

document.write(Math.min())

Пример

Будет выведено минимальное значение массива:

var a=[40,8,42,88,67];document.write(Math.min.apply(null,a))

Функция Math.max

Функция Math.max возвращает максимальное число из группы чисел, переданных в функцию.

Если в функцию ничего не передано, то будет возращено -Infinity.

По умолчанию функция не работает с массивами, однако с помощью приема можно найти максимальное значение массива: Math.max.apply(null,a), где a - произвольный массив.

Синтаксис: Math.max(число,число,число,…).

Пример

Будет выведено максимальное число из группы чисел 1,5,8,34,88:

document.write(Math.max(1,5,8,34,88))

Пример

Будет выведено максимальное число из группы чисел -1,0,-8,-56,-88:

document.write(Math.max(-1,0,-8,-56,-88))

Пример

Будет выведено -Infinity, т.к. функции не передали параметров:

document.write(Math.max())

Пример

Будет выведено максимальное значение массива:

var a=[1,5,8,34,88];document.write(Math.max.apply(null,a))

Функция Math.sqrt

Функция Math.sqrt возвращает квадратный корень числа.

Синтаксис: Math.sqrt(положительное число).

Пример

Будет выведен квадратный корень из 4:

document.write(Math.sqrt(4))

Пример

Будет выведен квадратный корень из 8:

document.write(Math.sqrt(8))

Пример

Будет выведен квадратный корень из -8. Так как передано отрицательное число, то будет выведено NaN:

document.write(Math.sqrt(-8))

Функция Math.pow

Функция Math.pow возводит число в заданную степень. 1-м параметром передается число, 2-м - в какую степень его возвести.

Синтаксис: Math.pow(число,степень).

Пример

Число 8 возводится в степень 2:

document.write(Math.pow(8,2))

Пример

Число 8 возводится в степень -3:

document.write(Math.pow(8,-3))

Функция Math.random

Функция Math.random возвращает случайное дробное число от 0 до 1.

Синтаксис: Math.random().

Чтобы получить случайно число в определенном промежутке (дробное или целое) следует и пользоваться специальными приемами:

Случайное дробное число между min и max

function getRandomArbitary(min,max){return Math.random()*(max-min)+min}

Случайное целое между min и max

Использование Math.round() даст неравномерное распределение!

function getRandomInt(min,max){return Math.floor(Math.random()*(max-min+1))+min}

Пример

Будет выведено случайное число от 0 до 1:

document.write(Math.random())

Пример

Будет выведено случайное целое число от 8 до 88:

function getRandomInt(min,max){return Math.floor(Math.random()*(max-min+1))+min};document.write(getRandomInt(8,88))

Функция isNaN

Функция isNaN проверяет, является ли переданный параметр числом или нет.

Функция вернет true, если параметр не является числом и false, если является.

Как она работает: переданный параметр преобразуется к числу. Если это не число (строка, массив и т.п.), то он преобразуется в NaN. Ну, а isNaN проверяет, NaN у нас получился после преобразования или нет.

Учтите, что, к примеру, true преобразуется не к NaN, а к числу 1. Есть и другие подобные подводные камни, смотрите их в описании NaN.

Синтаксис: isNaN(значение).

Пример

Будет выведено false, т.к. параметр является числом:

n=8;document.write(isNaN(n))

Пример

Будет выведено true, т.к. параметр не является числом:

n='Я люблю мир';document.write(isNaN(n))

Функция isFinite

Функция isFinite для проверки параметра на то, что он является конечным числом (т.е. не строкой, массивом и т.п. и не плюс или минус бесконечностью).

Как работает эта функция: она вернет false, если число является плюс или минус бесконечностью (т.е. Infinity или -Infinity) или не числом (т.е. NaN), в остальных случаях вернет true. Т.е. строки, массивы и т.п. будут преобразованы в NaN и соответственно вернут false.

Однако есть исключения: пустая строка '' возвращает true, строка с пробелами ' ' также возвращает true, null возвращает true, для значений true и false также возвращается true.

Это происходит потому, что эти значения корректно преобразуются в числа (а не в NaN).

Если нужна действительно точная проверка на число, которая не считает числом строку из пробелов, логические и специальные значения, используется следующая функция isNumeric:

function isNumeric(num){return !isNaN(parseFloat(num))&&isFinite(num)}

Давайте разберемся, как она работает.

Функция 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.

В результате отсеивается все, кроме строк-чисел и обычных чисел.

Синтаксис: isFinite(значение).

Пример

Будет выведено true, т.к. параметр является числом:

n=3;document.write(isFinite(n))

Пример

Будет выведено false, т.к. параметр не является числом:

n='JS';document.write(isFinite(n))

Пример

Будет выведено false, т.к. параметр является бесконечностью:

n=Infinity;document.write(isFinite(n))

Пример

Будет выведено false, т.к. 1/0 - это по сути Infinity (бесконечность):

n=1/0;document.write(isFinite(n))

Пример

Будет выведено true, т.к. пустая строка, не являющаяся числом (это исключение):

n='';document.write(isFinite(n))

Функция parseInt

Функция parseInt преобразует строку в целое число.

Это нужно для значений типа '12px', когда вначале стоит число, а потом единицы измерения. Если применить функцию parseInt к '12px', то результатом получится число 12 (и это будет действительно число, а не строка).

Преобразование произойдет, если только целое число стоит в начале строки, иначе будет выведено NaN.

2-м параметром можно указать систему счисления числа, и функция вернет число, переведенное из указанной системы счисления в десятичную.

Синтаксис: parseInt(строка,[система счисления]).

Пример

Функция преобразует строку в целое число:

s='10px';document.write(parseInt(s))

Пример

При преобразовании дробная часть будет отброшена:

s='10.3px';document.write(parseInt(s))

Если не нужно отбрасывать дробную часть, используйте функцию parseFloat.

Пример

Функция не смогла прочитать число (т.к. оно не в начале строки) и вернула NaN:

s='width:100px';document.write(parseInt(s))

Функция parseFloat

Функция parseFloat преобразует строку в число с плавающей точкой.

Это нужно для значений типа '12.5px', когда вначале стоит число, а потом единицы измерения. Если применить функцию parseFloat к '12.5px', то результатом получится число 12.5 (и это будет действительно число, а не строка).

Преобразование произойдет, если только целое число стоит в начале строки, иначе будет выведено NaN.

2-м параметром можно указать систему счисления числа, и функция вернет число, переведенное из указанной системы счисления в десятичную.

Синтаксис: parseFloat(строка,[система счисления]).

Пример

Функция parseFloat извлечет дробное число из начала строки:

s='10.3px';document.write(parseFloat(s))

Обратите внимание на то, как в этом случае будет работать функция parseInt, она отбросит дробную часть:

s='10.3px';document.write(parseInt(s))

Пример

Функция не смогла прочитать число (т.к. оно не в начале строки) и вернула NaN:

s='width:100px';document.write(parseFloat(s))

Метод toFixed

Метод toFixed производит округление числа до указанного знака в дробной части.

Количество знаков указывается параметром.

Если число знаков не указано, то по-умолчанию берется 0 знаков, т.е. округление до целого числа.

Параметр метода также может быть отрицательным, в этом случае округлятся будут не знаки в дробной части, а знаки в целой части. К примеру, значение -2 округлит число 12345.6789 в число 12300.

Синтаксис: число.toFixed(количество знаков в дробной части).

Пример

Дроби оставлено только 3 знака в дробной части:

n=1.1111;document.write(n.toFixed(3))

Пример

Дроби также оставлено только 3 знака в дробной части, однако последняя цифра увеличилась на 1, т.к. округление производится по правилам математики:

n=1.1119;document.write(n.toFixed(3))

Пример

Дробь округлена до целого числа, т.к. параметр метода пуст:

n=1.111;document.write(n.toFixed())

Пример

Параметр метода превышает количество знаков в дробной части в исходной дроби, поэтому метод добавил 2 цифры 0 в конец нашей дроби:

n=1.1111;document.write(n.toFixed(6))

Пример

ВНИМАНИЕ! Отрицательное значение не работает!

Параметром метода передано отрицательное значение, округление будет идти уже по целой части числа:

n=12345.6789;document.write(n.toFixed(-2))

Пример

Параметром метода передано отрицательное значение. По правилам математического округления число 4 будет увеличено на 1:

n=12345.6789;document.write(n.toFixed(-1))

Отвечу на любые вопросы. С уважением, Дмитрий Владимирович:
8-965-148-98-02, diplom07@mail.ru.
Печатать страницу: Математические функции в JavaScript

Математические функции в JavaScript, Математические, функции, в, JavaScript, создание, сайта, веб, заказ, web, дизайн, раскрутка, продвижение, новый, сайт, рейтинг, сео, seo, Создание сайтов, web-программирование, seo-продвижение, создание и раскрутка сайтов, вбиваю в топ-10, как гвозди, попробуйте бесплатно, Создание сайтов, web-программирование, seo-продвижение, Математические, функции, в, JavaScript, создание, сайта, веб, заказ, web, дизайн, раскрутка, продвижение, новый, сайт, рейтинг, сео, seo, создание, сайта, веб, заказ, web, дизайн, раскрутка, продвижение, новый, сайт, рейтинг, сео, seo, раскрутка сайтов, Вбиваю в ТОП-10, как гвозди, раскрутка сайтов, Делаю и раскручиваю сайты, Дмитрий Владимирович

×

Ваше письмо