【GAS】Mathオブジェクト
Mathオブジェクトは、多様な数学演算を提供するオブジェクトです。すべて静的メンバーであり、new 演算子等でインスタンスを生成することはできません。
インスタンス、new演算子にはこちらで解説しています。
- 1. Mathオブジェクト一覧
- 2. サンプルコード
- 2.1. Math.SQRT1_2
- 2.2. Math.SQRT2
- 2.3. Math.abs(x)
- 2.4. Math.sign(x)
- 2.5. Math.ceil(x)
- 2.6. Math.floor(x)
- 2.7. Math.round(x)
- 2.8. Math.trunc(x)
- 2.9. Math.exp(x)
- 2.10. Math.log(x)
- 2.11. Math.max(x,y,…)
- 2.12. Math.min(x,y,…)
- 2.13. Math.Pow(x,y)
- 2.14. Math.random()
- 2.15. Math.sqrt(x)
- 2.16. Math.cbrt(x)
- 2.17. Math.hypot(x,y,…)
Mathオブジェクト一覧
分類 | オブジェクト | 戻り値 | 説明 |
---|---|---|---|
静的メソッド | Math.E | - | ネイビア数(オイラー数) |
Math.LN2 | - | 2の自然対数 | |
Math.LN10 | - | 10の自然対数 | |
Math.LOG2E | - | 2を底としたEの対数 | |
Math.LOG10E | - | 10を底としたEの対数 | |
Math.PI | - | 円周率 | |
Math.SQRT1_2 | - | 1 / 2の平方根 | |
Math.SQRT2 | - | 2の平方根 | |
静的プロパティ | Math.abs(x) | Num | xの絶対値を返す |
Math.sign(x) | Int | xが正の数ならば1、負の数ならば-1、0ならば0を返す | |
Math.ceil(x) | Int | xの小数点以下を切り上けた整数を返す | |
Math.floor(x) | Int | xの小数点以下を切り捨てた整数を返す | |
Math.round(x) | Int | xを四捨五入した整数を返す | |
Math.trunc(x) | Int | xの整数部を返す | |
Math.exp(x) | Num | ネイビア数のx乗を返す | |
Math.log(x) | Num | xの自然対数を返す | |
Math.log10(x) | Num | 底を10とするxの対数を返す | |
Math.log2(x) | Num | 底を2とするxの対数を返す | |
Math.max(x,y,...) | Num | x,y...の中で最大の値を返す | |
Math.min(x,y,...) | Num | x,y...の値の中で最小の値を返す | |
Math.Pow(x,y) | Num | xのy乗を返す | |
Math.random() | Num | 0以上1未満の乱数を返す | |
Math.sqrt(x) | Num | xの平方根を返す | |
Math.cbrt(x) | Num | xの立方根を返す | |
Math.hypot(x,y,...) | Num | x. y,...のニ乗和の平方根を返す |
サンプルコード
Math.SQRT1_2
1/2の平方根を返します。
console.log(Math.SQRT1_2); //0.7071067811865476
ちなみに記述にMath.SQRT{分子}_{分母}みたいな規則性があるんじゃないかと思って他の数値入れてもundifinedになります。1/2だけの特別なメンバーです。
console.log(Math.SQRT1_3); //undefined
Math.SQRT2
2の平方根を返します。「一夜一夜に人見頃」になってますね。
console.log(Math.SQRT2); // 1.4142135623730951
ちなみにこちらも2以外の数字を挿入してみてもundifinedになります。2だけの特別なメンバーなのです。
console.log(Math.SQRT3); //undefined
Math.abs(x)
xの絶対値を返します。マイナスつけても正の値が返ってきていることがわかりますね。
let x = -10.5126;
console.log(Math.abs(x)); //10.5126
Math.sign(x)
xが正の数ならば1、負の数ならば-1、0ならば0を返します。
let x = 10.5126;
console.log(Math.sign(x)); //1
Math.ceil(x)
xの小数点以下を切り上けた整数を返します。
let x = 10.5126;
console.log(Math.ceil(x)); //11
Math.floor(x)
xの小数点以下を切り捨てた整数を返します。
let x = 10.5126;
console.log(Math.ceil(x)); //11
Math.round(x)
xを四捨五入した整数を返します。
let x = 10.5126;
console.log(Math.round(x)); //11
Math.trunc(x)
xの整数部を返します。
let x = 10.5126;
console.log(Math.trunc(x)); //10
Math.exp(x)
ネイビア数のx乗を返します。
let x = 10.5126;
console.log(Math.exp(x)); //36775.97287822254
定義的に次の自然対数を引数に入れると、xに一致するはずですが、数値計算で表示単位も規定されているためか完全に一致しないようですね。
console.log(Math.exp(Math.log(x))); //10.512599999999999
Math.log(x)
xの自然対数を返します。
let x = 10.5126;
console.log(Math.log(x)); //2.3525745377389597
指数と対数の順序を入れ替えると元の数値と一致するは不思議ですね、、(詳しい方コメントいただけると嬉しいです)
console.log(Math.log(Math.exp(x))); //10.5126
Math.max(x,y,…)
引数の中で最大の値を返します。
console.log(Math.max(20,120,-13)); // 120
Math.min(x,y,…)
引数の中で最小の値を返します。
console.log(Math.min(20,120,-13)); // -13
Math.Pow(x,y)
xのy乗を返します。
console.log(Math.pow(2,3)); // 8 2^3
数値を入れ替えるとわかりやすいですね。
console.log(Math.pow(3,2)); // 9 3^2
Math.random()
0以上1未満の乱数を返します。
console.log(Math.random()); // ランダムに生成された0~1の数値
Math.sqrt(x)
xの平方根を返します。
console.log(Math.sqrt(16)); // 4
Math.cbrt(x)
xの立方根を返します。
console.log(Math.cbrt(125)); // 5
Math.hypot(x,y,…)
引数のニ乗和の平方根を返します。
console.log(Math.hypot(3,4)); // 5(3^2+4^2=5^2)