Я знаю, что это странный вопрос, но есть ли у JavaScript возможность работать с двойными, а не с одиночными числами с плавающей запятой? (64-битные числа с плавающей запятой против 32-битных.)
Есть ли в JavaScript двойная точность чисел с плавающей запятой?
Ответы (3)
Все числа в JavaScript являются 64-битными числами с плавающей запятой.
Ссылка:
http://www.crockford.com/javascript/survey.html
Согласно спецификации ECMA-262 (ECMAScript — это спецификация для Javascript), раздел 8.5:
Тип Number имеет ровно 18437736874454810627 (то есть 264−253+3) значений, представляющих 64-разрядные значения двойной точности в формате IEEE 754, как указано в Стандарт IEEE для двоичной арифметики с плавающей запятой
Источник: http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf (PDF)
В javascript тип number — это 64-битное число с плавающей запятой, поддерживающее стандарт IEEE 754, и оно похоже на double в C. И вы можете создавать 32-битные типизированные массивы с помощью команд ниже и управлять каждый байт в каждом компоненте путем привязки соответствующего буфера.
let a = new Float32Array(length);
let b = new Float64Array(length);
Но обратите внимание, что он не поддерживается в IE9, здесь совместимость с браузерами таблица.
Если вам нужна расширенная точность, такая как long double, вы можете использовать double.js или библиотеку decimal.js.