ITOZ - 数値をゾーン 10 進数フォーマットに変換

ITOZ 関数は、数値フォーマット内の数をゾーン 10 進数フォーマットに変換します。リクエストはゾーン 10 進数を処理することはできませんが、ゾーン 10 進数フィールドを抽出ファイルに書き込み、外部プログラムで使用することができます。

数値をゾーン 10 進数フォーマットに変換

ITOZ(length, in_value, output)

説明

length

整数

in_value の長さをバイト数で指定します。最大バイト数は 15 です。末尾バイトには、符号が含まれます。

in_value

数値

変換する数値です。数値を含むフィールドを指定することもできます。数値は変換前に切り捨てられて整数になります。

output

文字

結果を格納するフィールド名、または出力フォーマットです。フォーマットは一重引用符 (') で囲みます。

数値をゾーン 10 進数フォーマットに変換

次のリクエストは、従業員 ID と給与情報を含む抽出ファイルを作成します。このファイルは、COBOL プログラム用にゾーン 10 進数フォーマットで作成されます。

DEFINE FILE EMPLOYEE
ZONE_SAL/A8 = ITOZ(8, CURR_SAL, ZONE_SAL);
END
TABLE FILE EMPLOYEE
PRINT CURR_SAL ZONE_SAL BY EMP_ID
ON TABLE SAVE AS SALARIES
END

結果の抽出ファイルは次のとおりです。

NUMBER OF RECORDS IN TABLE= 12 LINES= 12 
 
ALPHANUMERIC  RECORD  NAMED  SALARIES 
FIELDNAME                          ALIAS         FORMAT        LENGTH 
EMP_ID                             EID           A9              9 
CURR_SAL                           CSAL          D12.2M         12 
ZONE_SAL                                         A8              8 
TOTAL                                                           29
NUMBER OF RECORDS IN TABLE= 12 LINES= 12 
 
[EBCDIC|ALPHANUMERIC]  RECORD  NAMED  SALARIES 
FIELDNAME                                   ALIAS       FORMAT     LENGTH
EMP_ID                                      EID         A9           9 
CURR_SAL                                    CSAL        D12.2M      12 
ZONE_SAL                                                A8           8 
TOTAL                                                               29 
DCB USED WITH FILE SALARIES IS DCB=(RECFM=FB,LRECL=00029,BLKSIZE=00580)

SAVE コマンドを削除してリクエストを実行すると、EBCDIC プラットフォームの出力結果は次のようになります。EBCDIC の左中括弧 ({) は 16 進数で C0 です。これは、正の符号および最終桁 0 (ゼロ) を示します。EBCDIC の大文字の B は 16 進数で C2 です。これは正の符号および最終桁 2 を示します。

EMP_ID             URR_SAL  ZONE_SAL 
------            --------  -------- 
071382660       $11,000.00  0001100{
112847612       $13,200.00  0001320{
117593129       $18,480.00  0001848{
119265415        $9,500.00  0000950{
119329144       $29,700.00  0002970{
123764317       $26,862.00  0002686B 
126724188       $21,120.00  0002112{
219984371       $18,480.00  0001848{
326179357       $21,780.00  0002178{
451123478       $16,100.00  0001610{
543729165        $9,000.00  0000900{
818692173       $27,062.00 0002706B