型変換 【type conversion】
概要
型変換(type conversion)とは、プログラミング言語などで、あるデータ型の値を別の型に変換すること。例えば、文字列型の“10”というデータを整数型の10に変換する処理などが該当する。人間には同じように見えるデータでも、コンピュータ内部の表現形式であるデータ型や演算規則は異なる場合がある。例えば、文字列型で“1”+“1”という加算を行うと両者を文字として前後に連結した“11”という文字列型の値が得られる。これは整数型の1+1=2という計算とは異なる。
データを行いたい処理に適したデータ型に変換する処理やコードのことを型変換という。計算などを行う際に言語処理系などが自動的に行う暗黙の型変換と、開発者がコード上で関数や演算子で変換を指示する明示的な型変換がある。「(型)キャスト」という語は言語によっては後者のみを指す場合もある。
暗黙の型変換が実装されている言語では、例えば“1”+1という式を記述すると後者の整数の1を自動的に文字列型に変換して“11”という文字列型の加算(連結)を行うといった処理を自動的に行う。明示的な変換コードを記述しなくてよいため記述量が少なくて済むが、潜在的なバグの温床になるとして採用しない言語も多い。
データ型によって表現できる値の形式や範囲は異なるため、変換ができない場合や、変換によって情報が欠落する場合がある。例えば、数値として解釈しようのない文字列(“XYZ”など)は数値型には変換できず、エラーや例外を生じたり、非数に変換される。
また、実数を整数型に変換すると小数点以下は四捨五入されたり切り捨てられる(3.14→3)。32ビット符号なし整数型の65536以上の値を16ビット整数型に変換しようとすると、値域(0~65535)の上限を超えているため正しく表現できない。
(2019.1.21更新)