暗黙的変換
式の結果の暗黙的変換は、実行時に特定のデータ型の組み合わせに対して行われます。
例えば、整数式が浮動小数点型のデータ・フィールドの初期値として指定された場合、暗黙的変換が行われます。式の中で、文字列値から時間値への暗黙的変換は行われないことに注意してください。文字列値から時間値への変換は、convert 関数または stringtotime 関数を使用して明示的に行う必要があります。
複合式の内側で、暗黙的変換は、引数のデータ型を演算子または関数の要件に合わせるために行われます。例えば、substr 関数は、開始位置の引数と長さの引数で整数値を取得します。これらの引数として浮動小数点数値の 2.5 と 1.0 が指定されると、式の評価前に整数値の 2 と 1 に暗黙的に変換されます。
暗黙的変換は、実行時に次のデータ型の組み合わせに対して行われます。
浮動小数点数値から整数値への変換
浮動小数点数値の小数点以下のすべての数字が切り捨てられます。例えば、整数データ・フィールドの初期値として 123.4567 が指定された場合、データ・フィールドの値は 123 に設定されます。
注: 浮動小数点数値から整数値への変換は、配列データ・フィールドの初期化では行われません。整数配列に (単純式または複合式のいずれかとして) 指定する要素はすべて整数値でなければなりません。例えば、整数配列データ・フィールドの初期値を指定する場合、または assign システム関数を使用して整数配列データ・フィールドに値を割り当てる場合、{3} や {3 + 5, 7} などの値は有効ですが、{3.0} や {3 + 5.5, 7} の値は有効ではありません。
整数値から浮動小数点数値への変換
整数の最後の桁の後に小数点と 0 が追加されます。
浮動小数点数値と整数値の両方を含む複合式内で、演算子が同じデータ型の値を必要とする場合に暗黙的変換が行われます。この場合、整数値は、式の評価前に浮動小数点データ型に変換されます。例えば、1.5 + 2 が指定されると、2 は 2.0 に変換されます。
注: 整数値から浮動小数点数値への変換は、単純式を含む配列データ・フィールドの初期化では行われません。浮動小数点数配列で単純式として指定するエレメントはすべて浮動小数点数値でなければなりません。例えば、{3.0} や { convert(1, float) } は指定できますが、{3} は指定できません。