JavaScript: Числа

JavaScriptКомментариев нет

Функции, методы и свойства

isNaN(n) — проверяет значение переменной n и если она равно NaN то возвращает true, в противном случае false;

isFinite(n)  —  преобразует n в число и проверяет не равно ли оно: Infinity/-Infinity/NaN. Если не равно возвращает true, в противном случае false.

parseInt(s) — приводит строку s к целому числу. Преобразование идет символ за символом, пока не попадется не числовой символ(кроме пробелов и переноса строки). Вторым параметров к функции можно указать систему счисления.

// строку к числу
parseInt('12px') // 12
parseInt('FF', 16); // 255

parseFloat(s) — приводит строку s к числу с плавающей точкой. Работает аналогично parseInt(s).

Math.floor(n) — округляет n вниз до целого числа. Например: Math.floor(3.1); // 3

// округление
Math.floor(3.1); // 3

Math.ceil(n) — округляет n вверх до целого числа. Например:

// округление
Math.ceil(3.1); // 4

Math.round(n) — округляет n до ближайшего целого. Например:

// округление
Math.round(3.1); // 3

Math.random() —  возвращает псевдо случайное число от 0 до 1(0 — включительно, 1 не включительно).

Math.max() — возвращает наибольшее из нуля или более чисел.

Math.max(10, 20);   //  20
Math.max(-10, -20); // -10
Math.max(-10, 20);  //  20

Math. — полный список математических функций можно посмотреть тут: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Math

n.toFixed(y) — метод округляет n  до заданной точности y и возвращает строку. Например:

// округление числа
var n = 12.36;
alert( n.toFixed(1) ); // "12.4"
alert( n.toFixed(5) ); // "12.40000"

Данный метод округляет с погрешностью. Для более точного округления лучше использовать «трюк«, см. ниже.

n.toLocaleString() — метод используется для красивого вывода числа, например:

// красивый вывод числа
var n = 123456789;
alert(n.toLocaleString());

Математические нюансы в javascript:

NaN

NaN — ошибка при вычислениях, NaN не равно NaN

Деление на ноль

При деление на 0 javascript возвращает Infinity или -Infinity для отрицательных чисел( например: alert( -1 / 0); // -Infinity )

Большие числа

Числа которые не входят в 64-битного формат будут возвращать Infinity (например: alert( 1e500 ); // Infinity)

Погрешность в вычислениях

В javascript есть погрешность в вычислениях, которую легко проверить:

// погрешность в вычислениях
alert( 0.1 + 0.2 == 0.3 ); // false

Погрешность появляется в вычислениях переменных с плавающей точкой(в целых нет). Это происходит из за того что на хранение числа выделяется 8 байт(=64 бита) а числа с плавающей точкой это бесконечная дробь, которая все же ограничена 64 битами. Для правильного вычисления следует округлять числа. Обычно хватает до 10го знака.

Так же следует учесть, следующий пример:

// пример неточности
alert( 9999999999999999 ); // выведет 10000000000000000

 

Трюки

Точная проверка на число:

// проверка на число
function isNumeric(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

Округление до заданной точности:

// точное округление
var n = 3.456;
alert( Math.round(n * 100) / 100 ); // 3.456 -> 345.6 -> 346 -> 3.46

Округление битовыми операторами:

// округление чисел
alert( ~~12.3 ); // 12 округляем с помощью конструкции: ~~
alert( 12.3 ^ 0 ); // 12 округляем с помощью конструкции: ^ 0

Функцию isNaN() можно написать самому:

// isNaN()
if (n !== n) alert( 'n = NaN!' );

Преобразование к числу можно сделав подставив к переменной символ «+«, например:

// приводим к числу
alert( +"12" ); // 12

 

Источник: https://learn.javascript.ru/number


Будь первым кто прокомментирует статью.

Добавить комментарий

Войти с помощью: