Paepoi » JavaScript Tips » JavaScript Number
JavaScript Number
# 最終更新日 2024.01.03
数値
JavaScript における数値は 64bit の浮動小数点数、C 言語でいう double です
// 整数と浮動小数点数という違いは現在存在しません console.log(3 === 3.0); //=> true // NaN や Infinity も Number オブジェクトです console.log(`NaN=${typeof(NaN)}, Infinity=${typeof(Infinity)}`); //=> NaN=number, Infinity=number
16 進数, 8 進数, 2 進数
8 進数は 0o*、2 進数は 0b* が ES6 で追加された、16 進数は 0x* なのは従来どおり
console.log(0x0d); //=> 13 console.log(0o76); //=> 62 console.log(0b10); //=> 2 // 計算すると普通に Number オブジェクトで戻る // 表記だけの話なので出力は 10 進数になる console.log(0x0d * 0b10); //=> 26 // 16 進文字列等で出力するには toString の引数で指定 let num = 250; console.log(num.toString(16)); //=> fa // 文字列からの変換は parseInt の第二引数で指定 console.log(parseInt('ff', 16)); //=> 255 console.log(parseInt('11', 2)); //=> 3
指数
3.1e+6 なら 3.1*106 という意味です
console.log(3.1e+6); //=> 3100000
NaN, Infinity
NaN は数値ではない(Not a Number)、Infinity は無限大という意味
// NaN を作る例、0/0 のほうが簡単だけど let nan = 1 / Function console.log(nan); //=> NaN // NaN の比較は必ず false になる console.log(nan == NaN); //=> false // NaN かどうかを調べるには isNaN を使う console.log(isNaN(nan)); //=> true // Infinity を作る例、ゼロで除算 let inf = 1 / 0 console.log(inf); //=> Infinity // isFinite は値が NaN か Infinity の場合 false を戻す console.log(isFinite(inf)); //=> false
BigInt
Number は 17 桁までしか正しく扱えません、超えるなら BigInt を利用
// 末尾に n を付けると BigInt になる let num = 12345678901234567890; console.log(num); //=> 12345678901234567000 let bigNum = 12345678901234567890n; console.log(bigNum); //=> 12345678901234567890 // Number との比較は == なら true で === なら false になる console.log(10 === 10n); //=> false // 計算は BigInt 同士で行わないとエラー console.log(bigNum + 3); //=> Error!
Copyright(C) sasakima-nao All rights reserved 2002 --- 2024.