数学演算を行うMathオブジェクト
プログラミングを行うときに、必ずついてまわってくるのが、数学の演算です。ワークシート上の関数でも関数として用意されているものも多いですが、GASでもMathオブジェクトという形で様々な演算を簡単に行えるオブジェクトが用意されています。
※Mathオブジェクトのメンバーは全て静的メンバーなので、new演算子でインスタンスを作成することは出来ません。
Mathオブジェクトの主なメンバー
早速ですが、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) | 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オブジェクトを紹介しました!これらを一工夫することで、色々実現出来ることもありますので、また紹介させてもらいます!
コメント