1.1.10 Float
Floatは概数の数値フィールドで、浮動小数点数値データ(SignedやPackedなど固定小数点数値フィールドと対照的なデータ)を保管します。浮動小数点データは概数です。このフィールド・タイプの範囲内で、すべての値が正確に表されるわけではありません。Floatは、LANSAでは数字に分類されます。
Floatタイプのフィールドは算術演算式だけで使用することができます。コンポーネントやファンクションでFloatを表示することはできません。
Floatでは値を保管するためのバイト数を定義します。バイト数が大きくなるほど、数字の正確度は増します。4バイトのFloatは6桁以内であれば正確です。8バイトのFloatは15桁以内であれば正確です。
次のテーブルはFloatで考えられる各バイト長の正確な長さの一覧です。正確な長さはSignedまたはPackedフィールドの実際の長さに相当すると考えることができます。考えられる実行時の小数点以下桁数もテーブルに示されています。
バイト数 | 正確な桁数(正確な長さ) | 考えられる小数点以下桁数 |
|---|---|---|
4 | 6 | 0 - 6 |
8 | 15 | 0 - 15 |
一般的な事柄については、「1.1.1 フィールド・タイプについて」を参照してください。
フィールド定義の規則
Floatフィールドをリポジトリに定義するときの規則は以下のとおりです。
長さ | Floatは4または8バイト長にすることができます。小数点以下桁数は必ずゼロにします。 |
|---|---|
有効な鍵盤シフト | ブランク |
許容される属性 | AB、ASQN、CS、FE、ND、RA、RB、RL、RLTB |
編集オプション | 不可 |
デフォルト | *NULL |
使用規則
区画タイプ | |
|---|---|
ファイル | FloatはRDMLXファイルでのみ使用することができます。Floatは実フィールドとして使用することができます。Floatをキー・フィールドとして使用することはお勧めしません。 |
論理ビュー | Floatをキー・フィールドとして使用することはお勧めしません。 |
仮想フィールド | Float は演算仮想フィールドでのみ使用することができます。Float はソース・フィールドとしても使用できます。 |
事前結合フィールド | Floatは数値事前結合フィールドに使用することができます。 |
RDML コマンド | Floatタイプのフィールドは算術演算式だけで使用することができます。 |
組み込み関数 | Float を組み込み関数で使用する場合、有効な引数のタイプは「N」です。 |
特殊値 | *NULL、*NAVAIL、*HIVAL、*LOVAL、*REMEMBERED_VALUE |
変換 | FloatからDateやTimeフィールドへ変換すること、またその逆の変換は誤りです。詳細については、「フィールド・タイプ変換」を参照してください。 |
使用に関する注意事項
- ファンクションやコンポーネントで、作業フィールドは TYPE(*FLOAT) として定義することができます。長さの指定がない場合、デフォルトの8が仮定されます。
- Floatタイプのフィールドは算術演算式だけで使用することができます。Floatを算術演算式ではないコマンド・パラメータとして使用すると、FFCエラーになります。例えば、FloatをBEGIN_LOOPコマンドで使用することはできません。
- 一般的に、Float は 組み込み関数 (BIF) への数値引数としては不適切なタイプだと考えられています。
- Float タイプは正確ではないため、Float を用いての厳密な比較はお勧めしません。例えば、フィールドに保管された値やテーブルに保存された値と、フィールドに割り当てられた値は正確に一致しない場合があります。ただし、*ZEROや*SQLNULLとの比較は問題ありません。
プラットフォームについて
- プラットフォーム別の考慮事項については、「1.1.1 フィールド・タイプについて」を参照をしてください。
ヒントとテクニック
- 一般的にFloatは科学や工学のアプリケーションで使用されます。ビジネス・アプリケーションでの使用は一般的ではありません。
- LANSAでは、Floatはその他ファイルでの使用が基本的にサポートされていますが、ビジネス・アプリケーションでの使用はお勧めしません。