質問
JavaScript関数を使用します
function squareIt(number) {
return number * number;
}
番号4294967296が与えられた場合、関数は18446744073709552000を返します
誰もが本当の答えは18446744073709551616 :-)
これは、32ビットマシンを丸めていることです。しかし、このスクリプトは64ビットマシンで正しい答えを与えますか?誰かがこれを試しましたか?
解決
chrisv- この投稿を参照してください. 。また、次のJavaScriptをブラウザURLテキストボックスに直接入力することで、人々があなたの質問を評価することも簡単です。
javascript:4294967296*4294967296
他のヒント
JavaScriptは、数値計算に64ビットの浮動小数点算術を内部的に使用します - あなたが見る結果はこれを反映しており、基礎となるアーキテクチャに関係なく起こります。
これはどうですか
function squareIt(number){
return Math.pow(number,2)
}
これに基づいたもう1つの例があります biginteger.js.
alert(bigInt(4294967296).square());
<script src="https://cdnjs.cloudflare.com/ajax/libs/big-integer/1.6.40/BigInteger.min.js"></script>
所属していません StackOverflow