受取り側項目が浮動小数点数の場合に、非浮動小数点数の受取り側項目の結果に影響を与えるか否かを決定する。
>>-.---.-.----.--FP-ROUNDING--"dialect"------------->< +-/-+ +-NO-+
dialect | COB370、ISO2002、ENTCOBOL、MVS、OS390、OSVSまたは VSC2 |
省略値: | NOFP-ROUNDING(Dialect
![]() |
段階: | 構文チェック |
$SET: | 任意 |
FP-ROUNDING"ISO2002" は NOFP-ROUNDING と同義である。
ISO2002 を除くすべてのパラメータ (方言) の指定において、算術文の送出し側項目が浮動小数点数の場合は、ROUNDED 指定の有無や受取り側フィールドが浮 動小数点数であるか否かに関わらず、受取り側フィールドが四捨五入される。
ISO2002 と OSVS 以外のパラメータ (方言) に指定において、受取り側データ項目が浮動小数点数として定義されている場合は、ROUNDED 指定の有無、受 取り側フィールドが浮動小数点数であるか、および浮動小数点数の送出し側項目があるか否かに関わらず、受取り側データ項目が四捨五入され る。
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"COB370" を指定した場合は、numeric-field には 9 (四捨五入) が入る。NOFP-ROUNDING または FP-ROUNDING"OSVS" を指定した場合は、numeric-field には 8 (右端切捨て) が入る。
2 つの同じデータ項目を使用した場合の例を次に示す。
compute numeric-field = +7.6E0
FP-ROUNDING"VSC2"、FP-ROUNDING"COB370"、または FP-ROUNDING"OSVS" を指定した場合は、numeric-field には 8 (四捨五入) が入る。NOFP-ROUNDING または FP-ROUNDING"ISO2002" を指定した場合は numeric-field には 7 (右端切捨て) が入る。