2016-11-02 10 views
0

質問があります!なぜ、このコード:(右の答えであると仮定される)10進数から2進数 - 間違った結果

let number = 6063311135418901680; 
let binary = parseInt(number, 10).toString(2); 
console.log(binary); 

戻り101010000100101001101010101101001010101010100000110010000000000ない0101010000100101001101010101101001010101010100000110010010110000?私は10進数を2進数に変換しようとしますが、正しい方法を得られなかったかもしれません。数字についての情報がたくさんありますが、私を助けるものは何も見つかりませんでした。二つの理由のJavascriptを入力し、「数」の変数で表現できない

+0

'if(number> Number.MAX_SAFE_INTEGER)が新しいエラーを投げる(数字はそうした方法で動作しない、あなたたち!);' –

答えて

1
0101010000100101001101010101101001010101010100000110010010110000 

  • MAX_SAFE_INTEGERより
  • 整数大きい先行ゼロを保持していない番号は通常使用できません正確に表現される

これらの制約の背後にある理由は、数字がIEEE754 double precision floating point numbersとして保存されているためです。より大きな整数が必要な場合は、文字列として保持するか、大きな数値ライブラリを使用してください。

関連する問題