Экспресс-Кассандра конвертирует 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');