• 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


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

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

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