Ответ 1
(С 2011 года, когда был опубликован этот ответ, многое изменилось - см. Обновления ниже)
Обновление за 2019 год
BigInt появился в V8 (Node.js и браузеры на основе Chromium) с мая 2018 года. Он должен появиться в Firefox 68 - см. Билет SpiderMonkey. Также реализовано в WebKit.
BigDecimal еще не был реализован ни одним движком. Посмотрите на альтернативную библиотеку.
Обновление 2015
Прошло более 4 лет с тех пор, как я написал этот ответ, и сейчас ситуация намного сложнее.
Теперь у нас есть:
Скоро у нас будет:
Это означает, что число числовых типов, доступных в JavaScript, вырастет из одного:
- 64-битная с плавающей запятой (число с плавающей запятой IEEE 754 с двойной точностью - см.: ECMA-262 Edition 5.1, раздел 8.5 и ECMA-262 Edition 6.0, раздел 6.1.6)
по крайней мере, следующее в WebAssembly:
- 8-битное целое число (со знаком и без знака)
- 16-разрядное целое число (со знаком и без знака)
- 32-разрядное целое число (со знаком и без знака)
- 64-разрядное целое число (со знаком и без знака)
- 32-битная с плавающей точкой
- 64-битная с плавающей точкой
(Технически внутренние представления всех целочисленных типов являются беззнаковыми на самом низком уровне, но разные операторы могут рассматривать их как подписанные или беззнаковые, как, например, int32.sdiv
или int32.udiv
и т.д.)
Они доступны в типизированных массивах:
- 8-битные двойки дополняют целое число со знаком
- 8-битное целое число без знака
- 8-битное целое число без знака (зажато)
- 16-битное двойное дополнение со знаком целое число
- 16-разрядное целое число без знака
- 32-битные двойки дополняют целое число со знаком
- 32-разрядное целое число без знака
- 32-разрядное число с плавающей точкой IEEE
- 64-разрядное число с плавающей точкой IEEE
asm.js определяет следующие числовые типы:
- ИНТ
- подписанный
- неподписанный
- intish
- Fixnum
- двойной
- удваивать?
- поплавок
- плавать?
- floatish
Оригинальный ответ 2011 года
В JavaScript есть только один тип чисел - число с плавающей точкой двойной точности IEEE 754.
Посмотрите эти вопросы для некоторых последствий этого факта: