Объект Numberв JavaScript
В JavaScript существует только один тип чисел.
Числа можно записывать с десятичной точкой или без неё.
Числа JavaScript
Числа JavaScript можно записывать с десятичной точкой или без неё:
Примеры
var x=34; // Не использует десятичную точку
Очень большие или очень маленькие числа можно записывать с использованием научной (экспоненциальной) нотации:
Примеры
var z=123e-5; // 0.00123
Все числа JavaScript являются 64-битными
JavaScript не является типизированным языком. В отличие от многих других языков программирования, JavaScript не определяет разные типы чисел, такие как целые, short, long, с плавающей точкой и т. д.
В JavaScript числа не делятся на целочисленный тип и тип с плавающей точкой; все числа относятся к типу с плавающей точкой. JavaScript использует 64-битный формат с плавающей точкой, определённый стандартом IEEE754, для представления чисел. Он может представлять максимальное значение (Number.MAX_VALUE), равное±1.7976931348623157e+308, и минимальное значение (Number.MIN_VALUE) составляет±5e-324。
Этот формат использует 64 бита для хранения числовых значений, где биты с 0 по 51 хранят число (дробную часть), биты с 52 по 62 хранят экспоненту, а бит 63 хранит знак:

| Значение (также известное как дробная часть/мантисса) | Экспонента | Знак |
|---|---|---|
| 52 бита (0 - 51) | 11 бит (52 - 62) | 1 бит (63) |

Precision
Целые числа (без десятичной точки или экспоненциальной записи) могут содержать до 15 цифр.
Примеры
Попробуйте »
Максимальное количество десятичных знаков равно 17, но арифметика с плавающей запятой не всегда точна на 100%:
Восьмеричная и шестнадцатеричная системы счисления
Если префикс — 0, JavaScript интерпретирует числовую константу как восьмеричное число; если префикс — 0 и "x", он интерпретирует её как шестнадцатеричное число.
| Никогда не пишите ноль перед числом, если только вам не нужно восьмеричное преобразование. |
По умолчанию числа JavaScript отображаются в десятичной системе счисления.
Но вы можете использовать метод toString() для вывода в шестнадцатеричной, восьмеричной и двоичной системах счисления.
Примеры
myNumber.toString(16); // Возвращает 80
myNumber.toString(8); // Возвращает 200
myNumber.toString(2); // Возвращает 10000000
Попробуйте »
Бесконечность
Когда числовая операция превышает верхний предел чисел, которые JavaScript может представить (переполнение), результатом является специальное значение бесконечности, представленное в JavaScript как Infinity. Аналогично, когда отрицательное число выходит за диапазон отрицательных чисел, которые JavaScript может представить, результат отрицателен и представляется в JavaScript как -Infinity. Поведение значений бесконечности соответствует ожидаемому: результаты сложения, вычитания, умножения и деления с их участием по-прежнему бесконечны (конечно, с сохранением знаков).
Примеры
while (myNumber!=Infinity)
{
myNumber=myNumber*myNumber; // Повторять вычисление, пока myNumber не станет равным Infinity
}
Попробуйте »
Деление на 0 также даёт:
NaN — нечисловое значение
Свойство NaN — это специальное значение, представляющее нечисловое значение. Это свойство используется для указания того, что значение не является числом. Вы можете присвоить объекту Number это значение, чтобы указать, что оно не является числовым значением.
Вы можете использовать глобальную функцию isNaN(), чтобы определить, является ли значение значением NaN.
Примеры
isNaN(x); // Возвращает true
var y = 100 / "1000";
isNaN(y); // Возвращает false
Попробуйте »
Деление на 0 даёт бесконечность, и бесконечность — это число:
Числа могут быть числами или объектами
Числа можно инициализировать примитивными данными, например x = 123;
Объекты Number в JavaScript инициализируются данными, var y = new Number(123);
Примеры
var y = new Number(123);
typeof(x) // Возвращает Number
typeof(y) // Возвращает Object
Попробуйте »
Примеры
var y = new Number(123);
(x === y) // равно false, потому что x — число, а y — объект
Попробуйте »
Свойства Number
| Свойство | Описание |
|---|---|
| Number.MAX_VALUE | Максимальное значение |
| Number.MIN_VALUE | Минимальное значение |
| Number.NaN | Не число |
| Number.NEGATIVE_INFINITY | Отрицательная бесконечность, возвращается при переполнении |
| Number.POSITIVE_INFINITY | Положительная бесконечность, возвращается при переполнении |
| Number.EPSILON |
Представляет разницу между 1 и наименьшим числом Number, большим 1 и наиболее близким к 1. |
| Number.MIN_SAFE_INTEGER | Минимальное безопасное целое число. |
| Number.MAX_SAFE_INTEGER | Максимальное безопасное целое число. |
Методы Number
| Метод | Описание |
|---|---|
| Number.parseFloat() | Преобразует строку в число с плавающей запятой. По действию аналогичен глобальному методуparseFloat(). |
| Number.parseInt() |
Преобразует строку в целое число. По действию аналогичен глобальному методуparseInt(). |
| Number.isFinite() | Определяет, является ли переданный параметр конечным числом. |
| Number.isInteger() | Определяет, является ли переданный параметр целым числом. |
| Number.isNaN() | Определяет, является ли переданный параметр NaN. |
| Number.isSafeInteger() | Определяет, является ли переданный параметр безопасным целым числом. |
Некоторые методы в прототипе типа number
| Метод | Описание |
|---|---|
| toExponential() | Возвращает строку числа в экспоненциальной нотации, например: 1.23e+2 |
| toFixed() |
Возвращает представление с указанным количеством десятичных знаков. var a=123; b=a.toFixed(2); // b="123.00" |
| toPrecision() |
Возвращает число с указанной точностью. В примере ниже, при a=123, 3 исчезнет из-за ограничений точности: var a=123; b=a.toPrecision(2); // b="1.2e+2" |