Экспресс-Кассандра конвертирует Long значение в отрицательное

Я использую express-cassandra Пакет npm для подключения к базе данных. Приведенный ниже код дает отрицательное значение при конвертации Long значение в Integer,

var num = 13315766168394088000;

Результат:

var valueFromInt = models.datatypes.Long.fromInt(num);

=> Long: -1152696320

var valueFromString = models.datatypes.Long.fromString(num.toString());

=> Long: -5130977905315463616

Я не понимаю, почему это огромная разница и почему это возвращает отрицательное значение.

1 ответ

13315766168394088000 больше, чем Number.MAX_SAFE_INTEGER (2^53), поэтому вы не должны представлять его Number (64-битный IEEE-754 двойной), и вы не должны использовать Long.fromInt(),

Вы можете работать как с битами, так и с десятичным представлением строки значения:

const longValue = Long.fromString('13315766168394088000');
Другие вопросы по тегам