2012-03-13 16 views
3

PHPから渡されたbigintをnodejsの整数に変換しようとすると、結果は常に異なってしまい、何が問題なのか分かりませんでした。文字列を数値に変換して別の数値を返します

> var a = parseInt('135601920000000040', 10); 
undefined 
> a 
135601920000000030 
> var a = parseFloat('135601920000000040'); 
undefined 
> a 
135601920000000030 
> var n = Number('135601920000000040'); 
undefined 
> n 
135601920000000030 

はないだけのNode.js、それはまた、などのparseInt、parseFloatはに渡された値は、JavaScriptでNumber型は倍精度浮動小数点として表現されるFirefoxの

+0

別の番号を試してみましたか?135601920000000040?あなたが違う場合は、結果は何ですか?解決策につながる可能性のあるパターンを確認できますか? – Chris

+0

Fxでも:http://jsfiddle.net/mplungjan/VqQDH/ – mplungjan

答えて

3

にJSインタプリタに起こるので、 9007199254740992(ECMAScirpt Numbers specification)以上では、Number型に合わせて丸められます。

+0

ありがとう、私はそれを得た。 javascriptは64ビット整数を持っていない、PHPと同じ – Leric

関連する問題