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