数値形式の使用に関する考慮事項
数値フィールドの定義に際しては、以下の点に留意してください。
- 出力仕様書の 47 から 51 桁目に終了位置をコーディングした場合には、出力フィー
ルドが占有するバイト数の計算時には必ず外部形式を使用してください。 たとえば、5 桁のパック・フィールドは 3 バイトに記憶されますが、出力がゾー
ン形式であった場合には、5 バイトを必要とします。 出力が整数形式の場合には、2 バイトしか必要とされません。
- 文字フィールドをゾーン形式の数値に転送した場合には、文字フィールドは
ゾーン形式の正またはゾーン形式の負に固定されます。 その他のバイトのゾーン部分は、強制的に 'F' となります。 ただし、文字フィールドの 1 つのバイトの数字部分に有効数字が含まれていない
場合には、10 進データ・エラーが起こります。
- 数値フィールドが編集せずに書き出された場合には、符号は別個の文字として印
刷されず、数値の最後の桁に符号が組み込まれます。これにより、意外な
結果が生ずる可能性があります。たとえば、-625 が書き出さ
れる場合には、ゾーン 10 進数値は 62N を表す X'F6F2D5' になります。
フィールドの数値形式選択に関する考慮事項
次の場合には、フィールドに整数または符号なし形式を使用しなければなりません。
次の場合には、フィールドにパック、ゾーン、および 2 進形式を
指定することが必要です。
- 通貨の値のように、暗黙の小数点以下の桁数がある値を使用している場合
- 19 桁以上の値を処理している場合
- フィールドの特定の桁数を確認することが重要な場合
次の場合には、フィールドに浮動形式を指定することが必要です。
- パックまたはゾーン値で表すことのできない非常に小さい値または
非常に大きい値 (あるいはその両方) を保持するために同じ変数が必要な場合。
ただし、16 桁を超える精度を必要とする場合には、
浮動形式を使用しないで ください。
注:
算術演算が整数または符号なし形式を使用して実行され、とくに、整数の演算が
自由形式の式で行われた場合には、オーバーフローが起こる可能性がより高く
なります。 これは、中間結果が十分なサイズの一時 10 進フィールドにではなく、整数ま
たは符号なし形式で保存されるからです。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.