express-cassandra将Long值转换为负值

时间:2017-05-22 09:48:01

标签: node.js cassandra express-cassandra

我使用express-cassandra npm包连接到数据库,下面的代码在将Long值转换为Integer时给出负值。

var num = 13315766168394088000;

结果是: -

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

=>长:-1152696320

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

=>长:-5130977905315463616

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

1 个答案:

答案 0 :(得分:2)

13315766168394088000大于Number.MAX_SAFE_INTEGER(2 ^ 53),所以你不应该用Number(64位IEEE-754双)表示它,你不应该使用它Long.fromInt()

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

const longValue = Long.fromString('13315766168394088000');