Когда мне следует использовать BigInt64Array вместо Float64Array для чисел меньше Number.MAX_SAFE_INTEGER?Javascript

Форум по Javascript
Ответить
Anonymous
 Когда мне следует использовать BigInt64Array вместо Float64Array для чисел меньше Number.MAX_SAFE_INTEGER?

Сообщение Anonymous »

В JavaScript есть два конструктора типизированных массивов, которые могут хранить довольно большие числа:

Код: Выделить всё

const longs = new BigInt64Array()
const doubles = new Float64Array()
Они оба представляют собой массивы 64-битных целых чисел со знаком и чисел с плавающей запятой соответственно.
Есть ли смысл использовать BigInt64Array если я не храню числа, превышающие Number.MAX_SAFE_INTEGER?
Единственный плюс, который я могу придумать, - использовать BigInt64Array (даже если ваши числа меньше Number.MAX_SAFE_INTEGER) — если вы хотите применить целочисленный тип при хранении чисел, поскольку конструктор выдаст ошибку, если один из элементов является числом с плавающей запятой:

Код: Выделить всё

const arr = new BigInt64Array([900719925.4534]);
// Uncaught TypeError: Cannot convert 900719925.4534 to a BigInt
Однако недостатком является то, что для каждого известного целого числа, которое вы хотите добавить, вам нужно не забыть добавить к нему n следующим образом:

Код: Выделить всё

const arr = new BigInt64Array([523235n, 1093n, 3238n]);
Кроме того, если целые числа известны только среде выполнения, вам необходимо использовать функцию BigInt(value) для преобразования их в правильный тип:

Код: Выделить всё

const arr = new BigInt64Array([BigInt(a), BigInt(b), BigInt(c)]);
Преимуществом Float64Array является то, что он сразу же работает с примитивными числами JavaScript (не требуется суффикс числового литерала или функция преобразования).
Правильны ли мои рассуждения о полезности BigInt64Array?

Подробнее здесь: https://stackoverflow.com/questions/793 ... n-number-m
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»