n
16 桁の番号( 1111111111111111
) があります。1
この番号にもう 1 つ追加すると ( 11111111111111111
17 桁になる)、 と表示され11111111111111112
ます。
これは よりも大きいので理解できますが、代わりNumber.MAX_SAFE_INTEGER
に a を追加すると ( 17 桁のまま)、数値は として正しく表示されます。0
11111111111111110
11111111111111110
let a = 11111111111111111;
let b = 11111111111111110;
console.log(a, b); // 11111111111111112 11111111111111110
上記の動作は、 以外の最後の数字で発生します0
。この行動の違いの理由は何ですか?
「Javascriptで誤って丸められた大きな数字」を見てきましたが、ゼロが追加されたときではなく、ゼロ以外の数字が追加されたときに丸められる理由が説明されていません。