【GAS 基礎】数学演算を行うMathオブジェクト

スポンサーリンク

数学演算を行うMathオブジェクト

プログラミングを行うときに、必ずついてまわってくるのが、数学の演算です。ワークシート上の関数でも関数として用意されているものも多いですが、GASでもMathオブジェクトという形で様々な演算を簡単に行えるオブジェクトが用意されています。

※Mathオブジェクトのメンバーは全て静的メンバーなので、new演算子でインスタンスを作成することは出来ません。

Mathオブジェクトの主なメンバー

早速ですが、Mathオブジェクトの主なメンバーはこちらです。

分類メンバー説明
プロパティMath.Eネイピア数(オイラー数)
プロパティMath.LN22の自然対数
プロパティMath.LN1010の自然対数
プロパティMath.LOG2E2を底としたEの対数
プロパティMath.LOG10E10を底としたEの対数
プロパティMath.PI円周率
プロパティMath.SQRT1_21/2の平方根
プロパティMath.SQRT22の平方根
メソッドMath.abs(x)xの絶対値を返す
メソッドMath.ceil(x)xの少数点以下を切り上げた整数を返す
メソッドMath.floor(x)xの小数点以下を切り捨てた整数を返す
メソッドMath.round(x)xを四捨五入した整数を返す
メソッドMath.exp(x)ネイピア数(オイラー数)のx乗を返す
メソッドMath.log(x)xの自然対数を返す
メソッドMath.max(x,y,…)x,y…の中で最大値を返す
メソッドMath.min(x,y,…)x,y…の中で最小値を返す
メソッドMath.pow(x,y)xのy乗を返す
メソッドMath.random()0以上1未満の乱数を返す
メソッドMath.sqrt(x)xの平方根を返す
メソッドMath.sin(x)xのサインを返す
メソッドMath.cos(x)xのコサインを返す
メソッドMath.tan(x)xのタンジェントを返す
メソッドMath.acos(x)xのアークサインを返す
メソッドMath.asin(x)xのアークコサインを返す
メソッドMath.atan(x)xのアークタンジェントを返す
メソッドMath.atan2(x)y/xのアークタンジェントを返す

使い方

それでは、サンプルコードで、どんな動きになるのか確認しましょう!

function test(){
  
  
// プロパティ

  // ネイピア数(オイラー数)
  Logger.log(Math.E)         // 2.718281828459045
  
  // 2の自然対数
  Logger.log(Math.LN2)       // 0.6931471805599453
  
  // 10の自然対数
  Logger.log(Math.LN10)      // 2.302585092994046
  
  // 2を底としたEの対数
  Logger.log(Math.LOG2E)     // 1.4426950408889634

  // 10を底としたEの対数
  Logger.log(Math.LOG10E)    // 0.4342944819032518
  
  // 円周率
  Logger.log(Math.PI)        // 3.141592653589793
  
  // 1/2の平方根
  Logger.log(Math.SQRT1_2)   // 0.7071067811865476
  
  // 2の平方根
  Logger.log(Math.SQRT2)     // 1.4142135623730951

  

// メソッド

  // xの絶対値を返す
  var x = -123
  Logger.log(Math.abs(x))       // 123.0
 
  // xの少数点以下を切り上げた整数を返す
  var x = 123.456
  Logger.log(Math.ceil(x))      // 124.0
  
  // xの小数点以下を切り捨てた整数を返す
  var x = 123.456
  Logger.log(Math.floor(x))     // 123.0
  
  // xを四捨五入した整数を返す
  var x = 123.456
  Logger.log(Math.round(x))     // 123.0
  
  var x = 123.567
  Logger.log(Math.round(x))     // 124.0
  
  // ネイピア数(オイラー数)のx乗を返す
  var x = 2
  Logger.log(Math.exp(x))       // 7.38905609893065
  
  // xの自然対数を返す
  var x = 10
  Logger.log(Math.exp(x))       // 22026.465794806718
  
  // x,y...の中で最大値を返す
  Logger.log(Math.max(1, 5, 10, 100))   // 100.0
  
  // x,y...の中で最小値を返す
  Logger.log(Math.min(1, 5, 10, 100))   // 1.0
  
  // xのy乗を返す(pow(x,y))
  Logger.log(Math.pow(2, 4))   // 16.0
  
  // 0以上1未満の乱数を返す
  Logger.log(Math.random())   // 0.3172100165908738 (実行するたびに違う数値になる)

  // xの平方根を返す
  var x = 2
  Logger.log(Math.sqrt(x))    // 1.4142135623730951
  
  // xのサインを返す
  var x = 2
  Logger.log(Math.sin(x))    // 0.9092974268256817
  
  // xのコサインを返す
  var x = 2
  Logger.log(Math.cos(x))    // -0.4161468365471424
  
  // xのタンジェントを返す
  var x = 2
  Logger.log(Math.tan(x))    // -2.185039863261519
  
  
  // xのアークサインを返す
  var x = 10
  Logger.log(Math.asin(x))    // NaN
  
  // xのアークコサインを返す
  var x = 10
  Logger.log(Math.acos(x))    // NaN
  
  // xのアークタンジェントを返す
  var x = 10
  Logger.log(Math.atan(x))    // 1.4711276743037347
  
  
  // y/xのアークタンジェントを返す
  var x = 10
  var y = 2
  Logger.log(Math.atan2(y, x))   // 0.19739555984988078
  
}

全て静的メンバーなので特に悩むようなところはないかと思います。

スポンサーリンク

まとめ

数学演算を行うMathオブジェクトを紹介しました!これらを一工夫することで、色々実現出来ることもありますので、また紹介させてもらいます!

コメント

タイトルとURLをコピーしました