Объект Numberв JavaScript


В JavaScript существует только один тип чисел.

Числа можно записывать с десятичной точкой или без неё.


Числа JavaScript

Числа JavaScript можно записывать с десятичной точкой или без неё:

Примеры

var pi=3.14; // Использует десятичную точку
var x=34; // Не использует десятичную точку

Очень большие или очень маленькие числа можно записывать с использованием научной (экспоненциальной) нотации:

Примеры

var y=123e5; // 12300000
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 цифр.

Примеры

var x = 999999999999999; //x равно 999999999999999 var y = 9999999999999999; //y равно 10000000000000000

Попробуйте »

Максимальное количество десятичных знаков равно 17, но арифметика с плавающей запятой не всегда точна на 100%:

Примеры

var x = 0.2+0.1; // Результат — 0.30000000000000004

Попробуйте »


Восьмеричная и шестнадцатеричная системы счисления

Если префикс — 0, JavaScript интерпретирует числовую константу как восьмеричное число; если префикс — 0 и "x", он интерпретирует её как шестнадцатеричное число.

Примеры

var y = 0377;
var z = 0xFF;

Попробуйте »

lamp Никогда не пишите ноль перед числом, если только вам не нужно восьмеричное преобразование.

По умолчанию числа JavaScript отображаются в десятичной системе счисления.

Но вы можете использовать метод toString() для вывода в шестнадцатеричной, восьмеричной и двоичной системах счисления.

Примеры

var myNumber=128;
myNumber.toString(16); // Возвращает 80
myNumber.toString(8); // Возвращает 200
myNumber.toString(2); // Возвращает 10000000

Попробуйте »


Бесконечность

Когда числовая операция превышает верхний предел чисел, которые JavaScript может представить (переполнение), результатом является специальное значение бесконечности, представленное в JavaScript как Infinity. Аналогично, когда отрицательное число выходит за диапазон отрицательных чисел, которые JavaScript может представить, результат отрицателен и представляется в JavaScript как -Infinity. Поведение значений бесконечности соответствует ожидаемому: результаты сложения, вычитания, умножения и деления с их участием по-прежнему бесконечны (конечно, с сохранением знаков).

Примеры

myNumber=2;
while (myNumber!=Infinity)
{
myNumber=myNumber*myNumber; // Повторять вычисление, пока myNumber не станет равным Infinity
}

Попробуйте »

Деление на 0 также даёт:

Примеры

var x = 2/0;
var y = -2/0;

Попробуйте »


NaN — нечисловое значение

Свойство NaN — это специальное значение, представляющее нечисловое значение. Это свойство используется для указания того, что значение не является числом. Вы можете присвоить объекту Number это значение, чтобы указать, что оно не является числовым значением.

Вы можете использовать глобальную функцию isNaN(), чтобы определить, является ли значение значением NaN.

Примеры

var x = 1000 / "Apple";
isNaN(x); // Возвращает true
var y = 100 / "1000";
isNaN(y); // Возвращает false

Попробуйте »

Деление на 0 даёт бесконечность, и бесконечность — это число:

Примеры

var x = 1000 / 0;
isNaN(x); // Возвращает false

Попробуйте »


Числа могут быть числами или объектами

Числа можно инициализировать примитивными данными, например x = 123;

Объекты Number в JavaScript инициализируются данными, var y = new Number(123);

Примеры

var x = 123;
var y = new Number(123);
typeof(x) // Возвращает Number
typeof(y) // Возвращает Object

Попробуйте »

Примеры

var x = 123;             
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"
Другие расширения