我使用express-cassandra
npm包连接到数据库,下面的代码在将Long
值转换为Integer
时给出负值。
var num = 13315766168394088000;
结果是: -
var valueFromInt = models.datatypes.Long.fromInt(num);
var valueFromString = models.datatypes.Long.fromString(num.toString());
我不明白为什么这是巨大的差异以及为什么这会带来负值。
答案 0 :(得分:2)
13315766168394088000
大于Number.MAX_SAFE_INTEGER
(2 ^ 53),所以你不应该用Number
(64位IEEE-754双)表示它,你不应该使用它Long.fromInt()
。
您可以使用值的位或十进制字符串表示:
const longValue = Long.fromString('13315766168394088000');