FP-ROUNDING

受け取り側項目の 1 つが浮動小数点数である場合に、非浮動小数点数である他の受け取り側項目の結果に影響する可能性があるかどうかを判別します。
注: この指令は、ネイティブ COBOL でのみサポートされています。

構文:

 >>-.---.-.---FP-ROUNDING--"dialect"----.--------><  
    +-/-+ +-NOFP-ROUNDING---------------+

パラメーター:

dialect COBOL370、ISO2002、ENTCOBOL、MVS、OS390、OSVS、または VSC2。

プロパティ:

デフォルト: NOFP-ROUNDING
段階: 構文チェック
$SET: 任意

説明:

FP-ROUNDING"ISO2002" は NOFP-ROUNDING と同等です。

算術文の送り出し側項目のいずれかが浮動小数点数である場合、ROUNDED 指定があるかどうか、および受け取り側フィールドが浮動小数点数かどうかにかかわらず、すべての受け取り側フィールドが四捨五入されます。これは、ISO2002 を除くすべてのパラメーター (方言) 値に適用されます。

受け取り側データ項目のいずれかが浮動小数点数として定義されている場合、ROUNDED 指定があるかどうか、受け取り側フィールドが浮動小数点数であるかどうか、および浮動小数点数の送り出し側項目があるかどうかにかかわらず、すべての受け取り側データ項目が四捨五入されます。これは、ISO2002 および OSVS を除くすべてのパラメーター (方言) 値に適用されます。

NOFP-ROUNDING または FP-ROUNDING"ISO2002" を指定する場合、ソース内で ROUNDED 指定が明示的に使用されていない限り、浮動小数点演算を含む計算式で固定小数点数のターゲットは四捨五入されません。

例:

次のような 2 つのデータ項目が定義されているとします。

     05 numeric-field    pic 999.
     05 floating-field   comp-1.

また、次の文が実行されるとします。

     compute numeric-field floating-field = 7.7 + 1

FP-ROUNDING"VSC2" または FP-ROUNDING"COBOL370" を指定すると、numeric-field には 9 (四捨五入あり) が入ります。これに対し、NOFP-ROUNDING、FP-ROUNDING"ISO2002"、または FP-ROUNDING"OSVS" を指定すると、numeric-field には 8 (右端切り捨て) が入ります。

2 つの同じデータ項目を使用した場合の例を次に示します。

compute numeric-field = +7.6E0

この場合に、FP-ROUNDING"VSC2"、FP-ROUNDING"COBOL370"、または FP-ROUNDING"OSVS" を指定すると、numeric-field には 8 (四捨五入あり) が入ります。これに対し、NOFP-ROUNDING または FP-ROUNDING"ISO2002" を指定すると、numeric-field には 7 (右端切り捨て) が入ります。