前提・実現したいこと
JavaScriptの学習の一環として電卓を作成していたのですが、ある桁を超えると数字の表示が
おかしくなる現象が発生しました。
そこで調べてみたところ、整数で表現できる最大値が原因だと思われるのですが、最大値の表現に
ついてわからない点があり、質問させていただきました。
該当のソースコード
HTML
1<div id='box1'></div> 2<div id='box2'></div>
JavaScript
1const box1 = document.getElementById('box1'); 2const box2 = document.getElementById('box2'); 3 4box1.textContent = Number.MAX_VALUE; 5//1.7976931348623157e+308と表示される 6 7box2.textContent = 111111111111111111; 8//111111111111111100と表示される
質問
box2の値はbox1の値(MDNには「表現可能な正の数の最大値」と書かれていました。)よりも
小さい数値にも関わらず、なぜ正しく表示されないのでしょうか。
また、MDNには、Numberの整数範囲として、以下の記載もありますが、こちらは上記のNumber.MAX_VALUE
とは別物なのでしょうか。
var biggestInt = 9007199254740991; var smallestInt = -9007199254740991;
初歩的な質問で恐縮ですが、よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/17 03:29