Получите номер 18437736874454810627
Тип номера ECMAScript имеет точно значения 18437736874454810627.
Почему они пришли к этому номеру (18437736874454810627)? Другими словами, поскольку компьютеры обычно основаны на двоичной системе, то почти все числа (например, бит, байт, int16, int32 и т.д.) Основаны на 2. Но я не вижу, как мы можем получить от 18437736874454810627 до 2.
Ответы
Ответ 1
Поскольку число с плавающей запятой, используемое JavaScript, имеет фиксированное количество бит, используемое как описано в стандарт ECMA (стр. 41 из PDF или стр. 29, как написано в нижнем колонтитуле).
Тип номера имеет точно 18437736874454810627 (то есть 2 ^ 64 - 2 ^ 53 + 3) значения, представляющие значения IEEE 754 с двойной точностью 64-битного формата, как указано в стандарте IEEE для двоичной арифметики с плавающей запятой, за исключением того, что значения 9007199254740990 (то есть 2 ^ 53 - 2) отличные значения "Not-a-Number" стандарта IEEE представлены в ECMAScript как единственное специальное значение NaN.
Ответ 2
В соответствии с моим пониманием к спецификации ECMA Раздел 8.5 - Тип номера, есть 3 вида представлений на номер Javascript, а именно:
- NaN
- бесконечность
- конечные числа
Повторим еще несколько выдержек из спецификации:
9007199254740990 (т.е. 2 53 -2) разные значения "Not-a-Number" стандарта IEEE представлены в ECMAScript как одно специальное значение NaN. [...] все значения NaN неотличимы друг от друга.
Обратите внимание, что NaN фактически 1 единственное специальное значение, хотя для представления NaN используются несколько значений.
Есть еще два специальных значения, называемых положительной бесконечностью и отрицательной бесконечностью.
Это просто и очевидно, что мы имеем 2 значения бесконечности.
Остальные 18437736874454810624 (т.е. значения 2 64 -2 53) называются конечными числами.
И есть 18437736874454810624 конечные числа.
Итак, суммируя все числа: 1 + 2 + 18437736874454810624 = 18437736874454810627
Ответ 3
JavaScript использует IEEE-754, которые предлагают только 53 бит точности. См. Таблицу "Double Precision" в этой статье. Также см. fooobar.com/questions/372/....
Ответ 4
В javascript, 9007199254740990 этих значений NaN. (Стандарт IEEE для 64-разрядной двоичной арифметики с плавающей запятой определяет значение для всех, кроме одного NaN)