0

我正在使用express-cassandranpm 包连接到数据库,下面的代码在将Long值转换为Integer.

var num = 13315766168394088000;

结果是:-

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

=> 长:-1152696320

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

=> 长:-5130977905315463616

我不明白为什么这是巨大的差异以及为什么这会返回负值。

4

1 回答 1

2

13315766168394088000大于Number.MAX_SAFE_INTEGER(2^53),因此不应使用Number(64 位 IEEE-754 双精度)表示它,也不应使用Long.fromInt().

您可以使用值的位或十进制字符串表示形式:

const longValue = Long.fromString('13315766168394088000');
于 2017-05-30T07:09:32.950 回答