我正在使用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
我不明白为什么这是巨大的差异,为什么这是返回负值。
发布于 2017-05-30 15:09:33
13315766168394088000大于Number.MAX_SAFE_INTEGER (2^53),因此您不应该使用Number (64位IEEE-754Double)来表示它,也不应该使用Long.fromInt()。
您可以使用值的位或十进制字符串表示法:
const longValue = Long.fromString('13315766168394088000');https://stackoverflow.com/questions/44109757
复制相似问题