初心者のためのFlash ActionScript講座
Flash ActionScript Helper
Home Menu

最終更新日: 2003年3月8日

数値と文字列の型変換

「文字列 → 数値」の型変換

ActionScriptは型づけの弱い言語で、変数を使用する場合も、型の宣言をする必要はありません。必要に応じてデータ型が自動的に変換されます。ここでは、もっとも簡単な数値と文字列の型変換について説明します。

算術演算子や比較演算子などは、オペランドに数値を取ります。
しかし、数値以外のオペランドを渡されても、ActionScriptは文句もいわず、何とか式を評価しようと努力します。たとえば、文字列のオペランドを渡されたとき、ActionScriptは文字列のデータ型を数値に型変換します。多くの場合、それは徒労に終わり、まともな値にはなりませんが(多くの場合'NaN':数字ではないという値になります)、それでもActionScriptはあきらめず、その値を使用して式を評価します。本来なら、エラーを出してくれるとありがたいのですが、残念ながら意味のない値を作り出してくれます。

この型変換が有効に機能するのは、渡されたオペランドが '0'〜'9' の半角数字だけで構成された文字列の場合です。たとえば、"15"、"169"、"1025" などの文字列が渡された場合は、数値の '15'、'169'、'1025' に型変換され、期待された値を返す式となります。これは、あくまでも半角数字(1バイト)の場合であり、全角(2バイト)数字や漢数字などは含みません。

例で見てみましょう。

  n = "50" - 25 ; // 結果は25
  n = 3 * "4" ; // 結果は12
  n = "60" / "3" ; // 結果は20
  b = "40" == 40 ; // 結果はtrue
  b = 40 != "40" ; // 結果はfalse
  b = "20" > 10 ; // 結果はtrue
  b = 55 < "40" ; // 結果はfalse
  b = "50" >= "40" ; // 結果はtrue
  b = "50" <= "40" ; // 結果はfalse

これらの式はいずれも、数値オペランドのときと同様に、期待する結果となります。

「文字列 → 数値」の型変換説明図



加算演算子(+)使用時は逆の「数値 → 文字列」の型変換!

ただし、「文字列 → 数値」の型変換にも例外があります。
加算演算子(+)を使用した加算式の場合には、これとは逆の「数値 → 文字列」の型変換が実行されます。これは、加算演算子とストリング演算子が同じ記号(+)であるために起こる特殊なケースですが、間違いやすいので注意が必要です。
なお、この問題は「加算と文字列連結」に詳しくまとめてありますので、そちらをご覧ください。

n = "50" + 25 ; // 結果は"5025"



・関連項目

演算子
算術演算子
ストリング演算子
加算と文字列連結

(C)2000-2004 Ginga Baba. All rights reserved. お問い合わせ先:ginga@nifty.com
ページTOPへ
Home Menu