【GAS】Mathオブジェクト

GASMathオブジェクト

Mathオブジェクトは、多様な数学演算を提供するオブジェクトです。すべて静的メンバーであり、new 演算子等でインスタンスを生成することはできません。

インスタンス、new演算子にはこちらで解説しています。

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)Numxの絶対値を返す
Math.sign(x)Intxが正の数ならば1、負の数ならば-1、0ならば0を返す
Math.ceil(x)Intxの小数点以下を切り上けた整数を返す
Math.floor(x)Intxの小数点以下を切り捨てた整数を返す
Math.round(x)Intxを四捨五入した整数を返す
Math.trunc(x)Intxの整数部を返す
Math.exp(x)Numネイビア数のx乗を返す
Math.log(x)Numxの自然対数を返す
Math.log10(x)Num底を10とするxの対数を返す
Math.log2(x)Num底を2とするxの対数を返す
Math.max(x,y,...)Numx,y...の中で最大の値を返す
Math.min(x,y,...)Numx,y...の値の中で最小の値を返す
Math.Pow(x,y)Numxのy乗を返す
Math.random()Num0以上1未満の乱数を返す
Math.sqrt(x)Numxの平方根を返す
Math.cbrt(x)Numxの立方根を返す
Math.hypot(x,y,...)Numx. 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)  
この記事を書いた人

てつお
広告代理店出身、事業会社でWebマーケティングや開発の仕事をしている26歳です。プロフィール詳細はこちら
■Google広告認定資格|Google アナリティクス個人認定資格(GAIQ)|TOEIC920点