数値と相互に変換
今回は Office スクリプトを使って、文字列から数値、数値から文字列それぞれについて、変換する方法をサンプルコードと併せて解説します。
VBA との違い
VBA では型の異なるデータ同士での演算はエラーとなりますが、Office スクリプトでは許容されています。
例えば、文字列と数値を加算すると、数値も文字列として暗黙的にキャストされ、たとえ文字列が数値に変換可能であっても文字列として処理されます。
暗黙的な文字列への変換
const value1 = '150';
const value2 = 200;
// 出力結果は350ではなく"150200"
console.log(value1 + value2); //150200
数値データが文字列として格納されている場合は、明示的に型の変換が必要となります。
文字列から数値への変換
Number のコンストラクタを使った方法
Number
のコンストラクタの引数に文字列を指定することで、文字列を数値に変換することができます。
Numberのコンストラクタを使ったサンプル
const thisYear = Number('2022'); // 2022
const root2 = Number('1.4142'); // 1.4142
const notANumber = Number('こんにちは'); // NaN
const empty = Number(''); // 0
parseInt 関数を使った方法
標準で用意されているparseInt
関数を使うことでも、文字列を数値に変換できます。
parseのコンストラクタを使ったサンプル
const thisYear = parseInt('2022'); // 2022
const root2 = parseInt('1.4142'); // 1
const notANumber = parseInt('こんにちは'); // NaN
const empty = parseInt(''); // NaN
注意点
parseInt 関数を使用した場合、小数点以下を含む場合は切り捨てられます。
数値から文字列への変換
Number.toString を使った方法
数値から文字列への変換は、Number
オブジェクトに用意されているtoString
メソッドを利用することをおすすめします。
Number.toStringを使ったサンプル
const thisYear = (2022).toString(); // 2022
const pi = 3.1415;
const enshuritsu = pi.toString(); // '3.1415'
const binary = (100).toString(2); // '1100100'
引数に数値を指定すると、指定した値が基数となる数を受け取ることができます。例えば、toString(2)
と指定した場合、対象となる数値を 2 進数に変換した値が返却されます。
String のコンストラクタを使った方法
String
のコンストラクタの引数に数値を指定することでも、数値から文字列に変換することができます。
Stringのコンストラクタを使ったサンプル
const thisYear = String(2022); // 2022
const pi = 3.1415;
const enshuritsu = String(pi); // '3.1415'