assign()

mathLib.assign() システム関数は、ソース式の値をターゲット変数に代入し、EGL バージョン 6 で自動的に行われる丸め動作を保持します。

結果は、変数宣言に指定されている小数点以下の桁数まで丸められます (ターゲット型が DECIMAL の場合)。この関数は一般に、EGL マイグレーションで使用されますが、ターゲット変数の型を判別できない場合に役に立ちます。 丸め、オーバーフロー、バージョンの互換性について詳しくは、数値型間の丸めおよび切り捨てを参照してください。

構文

  mathLib.assign(
    source FLOAT | HEX(8) | HEX(16) in
    target SMALLINT | INT | BIGINT | DECIMAL |
             SMALLFLOAT | FLOAT | HEX(8) | HEX(16) out )
source
FLOAT、HEX(8)、または HEX(16) 型のいずれかと代入互換性のある変数または式を入力できます。
target
上記の型のいずれかをターゲット変数にすることができます。

次の式は、オーバーフローになる場合があります。

x DECIMAL(9,2);
y DECIMAL(9,4);
...
x = cos(y);

ターゲット変数の型に合わせて結果が丸められていることを確認するには、 次のように mathLib.assign() 関数を使用して式をラップします。

assign(cos(y), x);

互換性

表 1. 割り当ての互換性に関する考慮事項
プラットフォーム 問題
Rich UI 関数 mathLib.assign() はサポートされていません。

フィードバック