2017-05-22 7 views
0

express-cassandra npmパッケージを使用してデータベースに接続しています。Longの値をIntegerに変換している間、以下のコードは負の値を示しています。express-cassandraが長い値を負に変換しています

var num = 13315766168394088000; 

結果は次のとおりです。 -

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

=>ロング:-1152696320

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

=>ロング:これは巨大である理由を私は理解していない-5130977905315463616

なぜ、これが負の値を返すのかを示します。

答えて

2

13315766168394088000を超えるNumber.MAX_SAFE_INTEGER(2^53)であるので、あなたはNumber(64ビットIEEE-754ダブル)でそれを表現してはならないとあなたがLong.fromInt()を使用しないでください。

あなたはビットまたは10進数値文字列表現のいずれかで仕事ができる:

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

おかげで私の研究をしている間、私は同じことを発見しました。 – SpunkyLive

関連する問題