Google Apps ScriptでString型文字列を数値に変換する方法(数値→文字列も)

2020年8月12日

Google Apps Script(GAS)でString型の文字列変数を数値型の変数に変換する方法を紹介します。

文字列→数値に変換することに加え、数値→文字列の変換についても解説していきます。

GASの文字列→数値の変換はNumber又はparseInt

Google Apps Script(GAS)で、文字列を格納するString変数を数値型の変数に変換するには2種類の方法が用意されています。

  1. Number(String)
  2. parseInt(String)

Number,parseIntの引数にString型の変数を指定すると、数値側の変数に変換されます。

Google Apps Script(GAS)でNumberとparseIntで文字列から数値に変換

function stringToNumber() {
//数字をダブルクオーテーションで文字列として定義する
let str = "123456";
//そのまま文字列としてログ表示
Logger.log(str);
//Number、parseIntで文字列を数値に変換
Logger.log(Number(str));
Logger.log(parseInt(str));
}

それぞれ数値型に変換して、ログ出力されます。

数値型に変換することで、+,-,*,/の四則演算が可能になります。

parseIntとNumberの違いは?

GASで文字列→数値に変換する方法として、parseIntとNumberの2つがあると紹介しましたが、この2つにはどういった違いがあるのでしょうか。

Numberは文字列が数値に合致するものの場合には、数値に変換を行います。

しかし、数字以外の文字が含まれていた場合、「数字ではない=Not a Number(NaN)」として、NaNという値になります。

一方、parseIntの場合は、文字列の中に数字以外が含まれていても、そこまでの数字部分のみを数値型変数に変換します。

例えば、「”123ABC”」という文字列をNumberとparseIntでそれぞれ変換すると、以下のようになります。

  1. Number(“123ABC”):NaN
  2. parseInt(“123ABC”):123.0

parseIntのほうが部分的にでも数値変換できるというメリットがありますが、誤った数値に変換されるというデメリットもあります。

また、「”ABC123″」といった文字列の場合は、parseIntでも変換できず、NaNの値になります。

GASの数値→文字列の変換はtoString()

逆に数値型の変数を文字列のString変数に変換する方法は、Google Apps Script(GAS)では「toString()」メソッドを使います。

Google Apps Script(GAS)で数値型変数を文字列(String)に変換するサンプルコード

function numberToString() {
//数値型の変数を定義する
let num = 123456;
//そのまま数値としてログ表示
Logger.log(num);
//toStringメソッドで数値を文字列に変換
Logger.log(num.toString());
}

文字列に変換することで、文字列としての連結が可能なります。

カンマ(,)入り数字の文字列を数値変換する方法は?

なお、Google Apps Script(GAS)で「123,456」のようなカンマが入った数字の文字列を、数値型の変数に変換するには一工夫が必要になります。

Numberメソッドで変換しようとすると、カンマが含まれていることで「数値ではない」と判定し、「NaN」となって変換できません。

parseIntメソッドの場合、カンマ(,)前までの数字は変換できますが、カンマ以降が無視されるので、「123」という変換結果となります。

こうしたカンマ区切りを防ぐためには、Stirngオブジェクトで置換を行うreplaceメソッドを利用します。

※GASのreplaceメソッドの解説記事はこちら↓

Google Apps Script(GAS)で文字列の置換(置き換え)・削除する方法(replaceメソッド)

replaceメソッドで「,」を削除することで、文字列から数値の変換ができるようになります。

String.replace(“,”,””)

カンマ入りの数字の文字列を数値に変換する場合は、replaceメソッドでカンマを取り除く処理が必要

function commaStringToNumber() {
//カンマが入った数字を文字列として定義する
let str = "123,456";
//そのまま文字列としてログ表示
Logger.log(str);
//replaceメソッドでカンマを取り除いたあと、数値型に変換
Logger.log(Number(str.replace(",","")));
Logger.log(parseInt(str.replace(",","")));
}

replaceメソッドでは置換する文字がない場合は処理を行わず、エラーにはならないので、カンマ入り数字が入るケースに備え、設定しておくのがオススメです。

まとめ・終わりに

今回、Google Apps Script(GAS)で文字列を数値に変換、数値を文字列に変換する方法を解説しました。

文字列→数値はNumberやparseIntを使って変換し、数値→文字列はtoString()メソッドを使って変換します。

カンマが入っている数字を変換する場合には、文字列からカンマを取り除くことで数値に変換が可能です。

GASで文字列⇔数値の変換する際にはご参考ください。