私は問題に直面しました。実際に私はかなり驚いています。 番号9933272057275866を1つ増やそうとすると、自動的に2が追加されます。9933272057275866はそれが魔法の数ですか?
let test = 9933272057275866;
let test2 = test+1;
console.log('Before:', test);
console.log('After:', test2);
console.log('Sub:', test2-test);
そして、それぞれの出力:
Before: 9933272057275866
After: 9933272057275868
Sub: 2
どのようにこれを可能にすることができます 次のコードを参照してください?
環境はJavascriptです。私はHackerrankでチャレンジを提出したときにこの問題を発見し、node.jsの自分の環境でも同じことを試みました。同じ結果!
何が起こっていますか?
*浮動小数点演算が壊れていません!* –
'Number.isSafeInteger(9933272057275866)=== false'を読んでください:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger – Ryan
@ Ryanとても素敵な記事 –