Числа
1. Введение
Все числа в JavaScript, как целые так и дробные, имеют тип Number
и записывать их можно не только в десятичной системе счисления.
2. Приведение к числу
Большинство арифметических операций и математических функций преобразуют значение в число автоматически. Для того чтобы сделать это явно, используйте функцию Number(val)
, передавая ей в val
то, что надо привести к числу.
Если значние не возможно привести к числу, результатом будет специальное значение NaN (Not a Number)
. Аналогичным образом происходит преобразование и в других математических операторах и функциях.
3. Number.parseInt() и Number.parseFloat()
Методы преобразуют строку символ за символом, пока это возможно. При возникновении ошибки возвращается число, которое получилось.
4. Проверка на число
Для проверки на число можно использовать метод Number.isNaN(val)
. Он проверяет, является ли указанное значение NaN
или нет. Этот метод отвечает на вопрос "Это Not A Number?" и возвращает:
true
— если значениеval
этоNaN
false
— если значениеval
это неNaN
Для всех значений val
кроме NaN
, при передаче в Number.isNaN(val)
вернёт false
. Этот метод не производит попытку преобразовать val
к числу, а просто выполняет проверку на NaN
.
5. Сложение чисел с плавающей точкой
При сложении не целых чисел в JavaScript, и других языках программирования, есть особенность. Если кратко, то 0.1 + 0.2
не равно 0.3
, результат сложения больше чем 0.3
. Все от того что машина считает в двоичной системе.
Число 0.1
в двоичной системе счисления - это бесконечная дробь, так как единица на десять в двоичной системе не делится. Также бесконечной дробью является 0.2
. Двоичное значение бесконечных дробей хранится только до определенного знака, поэтому возникает неточность. При сложении 0.1
и 0.2
, две неточности складываются, получается незначительная, но всё же ошибка в вычислениях.
Конечно, это не означает, что точные вычисления для таких чисел невозможны. Есть несколько методов решения этой проблемы:
Сделать их целыми, умножив на 10, сложить, а потом результат разделить на 10
Сложить, а затем округлить до разумного знака после запятой. Округления до 10-го знака обычно бывает достаточно, чтобы отсечь ошибку вычислений
6. Объект Math
Один из встроенных объектов в язык. Предоставляет набор методов для работы с числами. Знание всех методов наизусть не требуется, только некоторых, наиболее полезных.
Last updated