>>-.---.-.---FP-ROUNDING--"dialect"----.-------->< +-/-+ +-NOFP-ROUNDING---------------+
dialect | COBOL370、ISO2002、ENTCOBOL、MVS、OS390、OSVS、または VSC2。 |
デフォルト: | NOFP-ROUNDING |
段階: | 構文チェック |
$SET: | 任意 |
次のような 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 (右端切り捨て) が入ります。
説明:
FP-ROUNDING"ISO2002" は NOFP-ROUNDING と同等です。
算術文の送り出し側項目のいずれかが浮動小数点数である場合、ROUNDED 指定があるかどうか、および受け取り側フィールドが浮動小数点数かどうかにかかわらず、すべての受け取り側フィールドが四捨五入されます。これは、ISO2002 を除くすべてのパラメーター (方言) 値に適用されます。
受け取り側データ項目のいずれかが浮動小数点数として定義されている場合、ROUNDED 指定があるかどうか、受け取り側フィールドが浮動小数点数であるかどうか、および浮動小数点数の送り出し側項目があるかどうかにかかわらず、すべての受け取り側データ項目が四捨五入されます。これは、ISO2002 および OSVS を除くすべてのパラメーター (方言) 値に適用されます。
NOFP-ROUNDING または FP-ROUNDING"ISO2002" を指定する場合、ソース内で ROUNDED 指定が明示的に使用されていない限り、浮動小数点演算を含む計算式で固定小数点数のターゲットは四捨五入されません。