GASで数値の絶対値を得る方法(Math.absメソッド)

Google Apps Script(GAS)で数値処理を行っていると、数値型変数の絶対値が取得したいケースがあります。

GASで絶対値を取得する際に利用するMathオブジェクトのabsメソッドについて解説します。

差分を知りたい時に絶対値が便利

中学数学で習う「絶対値」は0からの距離を表した数値です。

正負の向きがない0からのどれだけ離れているかなので、符号が付くことはありません。

例えば、2つの商品A,Bの価格差は単純に計算すると、A-BまたはB-Aです。

ただ、そのまま引き算すると、どちらか一方はマイナスの数値になります。

そんな時に絶対値として計算すれば、A-BでもB-Aでもどちらも同じ数値になります。

このように、2つの数値の差分を求めたい場合に、絶対値での算出がオススメです。

GASの絶対値取得はMath.abs

Google Apps Script(GAS)で絶対値を取得するには、Mathオブジェクトに用意された、absメソッドを利用します。

Math.abs(数値)

absメソッドを実行すると、引数に指定した数値の絶対値を返却してくれます。

引数が正の数だった場合はそのままですが、負の数だった場合にマイナス符号を取り除いた数値に変換可能です。

絶対値を算出するGASサンプルコード

実際にGoogle Apps Script(GAS)で、Math.absメソッド使って絶対値に変換するサンプルコードを解説します。

2行目で正の数の変数、3行目で負の数の変数を定義しています。

console.logでそれらの変数の数値を絶対値をログ出力しています。

function getAbsValue() {
  //正の数を定義
  let num1 = 50.45;
  //負の数を定義
  let num2 = -25.47;
  //それぞれの数値の絶対値を出力
  console.log(Math.abs(num1));
  console.log(Math.abs(num2));
}
Google Apps Script(GAS)でMath.absメソッドを使って、正の数と負の数の絶対値を算出するサンプルコード

正の数を格納した変数はそのまま出力されていますが、負の数を格納した変数は絶対値としてマイナスの符号がなくなっています。

絶対値には+-の区別がないため、上記のようにabsメソッドで変換されています。

実際の利用シーンとして多い、数値間の差分を求めるサンプルコードでも絶対値を実行してみます。

function getNumDiff() {
  //差分を取得したい数値を定義
  let num1 = 8000;
  let num2 = 10000;
  //num1-num2、num2-num1の引き算結果
  console.log(num1-num2);
  console.log(num2-num1);
  //num1-num2、num2-num1の絶対値はどちらも同じ
  console.log(Math.abs(num1-num2));
  console.log(Math.abs(num2-num1));
}
Google Apps Script(GAS)でMath.absメソッドを使って、2つの数値間の差分を絶対値として算出することで、引き算の順番がどちらでも同じ結果が出力されるサンプルコード

絶対値を使わずに引き算すると、num1-num2の方はマイナスがついてしまいます。

「差分が○○以上の場合は」といった条件分岐でプラスとマイナス2つの結果を考慮するのは大変です。

しかし、Math.absで絶対値にしておけば、どちらの引き算でも差分は同じなので、条件分岐もスムーズに記述できます。

まとめ・終わりに

今回、Google Apps Script(GAS)で数値の絶対値を得る方法を紹介しました。

GASのMathオブジェクトに用意されたabsメソッドを利用して、引数に指定した数値を絶対値に変換できます。

値段や時間の差分を計算する際には、絶対値として求めることで、差分量を取得することができます。

GASで絶対値の計算が必要になった時はMath.absメソッドを活用しましょう。