LC_MONETARY ロケール・カテゴリー

ILE COBOL では、LC_MONETARY ロケール・カテゴリーで作成可能な定義に対応する、 ロケールに基づいた数字編集データ項目の PICTURE 編集記号のサブセットがあります。 これらの記号は、9.¥、および cs (通貨記号) です。 これらのロケールに基づいた PICTURE 編集記号について詳しくは、「WebSphere Development Studio: ILE COBOL 解説書」を参照してください。 ここでは、LC_MONETARY ロケール・カテゴリーについて説明し、ILE COBOL のロケールに基づいた PICTURE 編集記号をそれぞれ、 使用されるキーワードと関連付けて、このロケール・カテゴリーを定義します。

ロケール定義ソース・ファイルの LC_MONETARY カテゴリーは、通貨数値情報のフォーマット設定を行うための規則と記号を定義します。 このカテゴリーは、LC_MONETARY カテゴリー・ヘッダーで始まり、END LC_MONETARY カテゴリー・トレーラーで終わります。

LC_MONETARY カテゴリー・キーワードのオペランドはすべて、ストリング値または整数値として定義されます。 ストリング値は、二重引用符 ("") で結合されます。 値はすべて、1 つまたは複数のスペースで、それらが定義するキーワードと区切られます。 2 つの二重引用符が隣接している場合は、未定義ストリング値であることを示します。 -1 は未定義整数値であることを示します。 LC_MONETARY カテゴリーでは、以下に示すキーワードが認識されます。

int_curr_symbol
国際通貨記号に使用されるストリングを指定します。 キーワード int_curr_symbol のオペランドは、4 文字のストリングです。 最初の 3 文字には、英字の国際通貨記号が含まれます。 4 番目の文字は、国際通貨記号と通貨数量との区切り文字を指定します。 ローカルの通貨記号に使用されるストリングを指定します。 このキーワードは、ILE COBOL では使用されません。
currency_symbol
ローカルの通貨記号に使用されるストリングを指定します。 ILE COBOL では、このキーワードは、ロケールに基づく PICTURE 編集記号 cs をフォーマット設定するために、いくつかの他のキーワードと一緒に使用します。 キーワード p_cs_precedes、p_sep_by_space、n_cs_precedes、および n_sep_by_space を参照してください。
mon_decimal_point
通貨数量をフォーマット設定するのに使用される小数点に使用されるストリングを指定します。 ILE COBOL では、これは、ロケールに基づく PICTURE 編集記号 . に対応します。
mon_thousands_sep
フォーマット設定された通貨数量の小数点の左側にある桁のグループ分けに使用されるストリングを指定します。
mon_grouping
フォーマット設定された通貨数量の各グループの桁数を定義します。 キーワード mon_grouping のオペランドは、セミコロンで区切られた一連の整数で構成されます。 各整数は、1 つのグループ内の桁数を指定します。 冒頭の整数は、小数点のすぐ左にあるグループの桁数を定義します。 その後の整数は、直前のグループの左にある後続グループを定義します。 最後の数字が -1 でなければ、直前の数字を使用して、その後のグループ分けが実行されます。 最後の数字が -1 の場合には、グループ分けは、指定されたグループ数分だけ実行されます。

以下に、キーワード mon_grouping の解釈の例を示します。 フォーマット設定される値は 123456789 であり、キーワード mon_thousands_sep のオペランドはコンマ (,) であると想定すると、結果は次のようになります。

mon_grouping の値
フォーマット設定された値
3;-1
123456,789
3
123,456,789
3;2
12,34,56,789
3;2;-1
134,56,789
positive_sign
フォーマット設定された負でない値をもつ通貨数量を示すのに使用されるストリングを指定します。 ILE COBOL では、これは、ロケールに基づく PICTURE 編集記号 + に対応します。
注:
ILE COBOL では、このキーワードは、ロケールに基づく PICTURE 編集記号 + をフォーマット設定するためにいくつかの他のキーワードと一緒に使用します。 キーワード negative_sign、p_sign_posn、および n_sign_posn を参照してください。
negative_sign
フォーマット設定された負の値をもつ通貨数量を示すのに使用されるストリングを指定します。
注:
ILE COBOL では、このキーワードは、ロケールに基づく PICTURE 編集記号 + をフォーマット設定するためにいくつかの他のキーワードと一緒に使用します。 キーワード positive_sign、p_sign_posn、および n_sign_posn を参照してください。
int_frac_digits
int_curr_symbol 値を使用してフォーマット設定された通貨数量に表示される小数部の桁数 (小数点の後にあるもの) を表す整数値を指定します。 このキーワードは、ILE COBOL では使用されません。
frac_digits
currency_symbol 値を使用してフォーマット設定された通貨数量に表示される小数部の桁数 (小数点の後にあるもの) を表す整数値を指定します。 このキーワードは、ILE COBOL では使用されません。
p_cs_precedes
int_curr_symbol ストリングまたは currency_symbol ストリングがフォーマット設定された負でない通貨数量の値より前にくるか、 後にくるかを示す整数値を指定します。 認識される整数値は、次のものです。
0
通貨記号が通貨数量の後にくることを指示します。
1
通貨記号が通貨数量の前にくることを指示します。
注:
ILE COBOL では、このキーワードは、ロケールに基づく PICTURE 編集記号 cs をフォーマット設定するためにいくつかの他のキーワードと一緒に使用します。 キーワード currency_symbol、p_sep_by_space、 n_cs_precedes、および n_sep_by_space を参照してください。
p_sep_by_space
int_curr_symbol ストリングまたは currency_symbol ストリングと、 フォーマット設定された負でない通貨数量とをスペースで区切るかどうかを示す整数値を指定します。 認識される整数値は、次のものです。
0
通貨記号と通貨数量をスペースで区切らないことを指示します。
1
通貨記号と通貨数量をスペースで区切ることを指示します。
2
通貨記号と positive_sign ストリングが隣接した場合にスペースで区切ることを指示します。
注:
ILE COBOL では、このキーワードは、ロケールに基づく PICTURE 編集記号 cs をフォーマット設定するためにいくつかの他のキーワードと一緒に使用します。 キーワード currency_symbol、p_cs_precedes、 n_cs_precedes、および n_sep_by_space を参照してください。
n_cs_precedes
int_curr_symbol ストリングまたは currency_symbol ストリングがフォーマット設定された負の通貨数量の値より前にくるか、 後にくるかを示す整数値を指定します。 認識される整数値は、次のものです。
0
通貨記号が通貨数量の後にくることを指示します。
1
通貨記号が通貨数量の前にくることを指示します。
注:
ILE COBOL では、このキーワードは、ロケールに基づく PICTURE 編集記号 cs をフォーマット設定するためにいくつかの他のキーワードと一緒に使用します。 キーワード currency_symbol、p_cs_precedes、 p_sep_by_space、および n_sep_by_space を参照してください。
n_sep_by_space
int_curr_symbol ストリングまたは currency_symbol ストリングをフォーマット設定された負の通貨数量とスペースで区切るかどうかを示す整数値を指定します。 認識される整数値は、次のものです。
0
通貨記号と通貨数量をスペースで区切らないことを指示します。
1
通貨記号と通貨数量をスペースで区切ることを指示します。
2
通貨記号と negative_sign ストリングが隣接した場合にスペースで区切ることを指示します。
注:
ILE COBOL では、このキーワードは、ロケールに基づく PICTURE 編集記号 cs をフォーマット設定するためにいくつかの他のキーワードと一緒に使用します。 キーワード currency_symbol、p_cs_precedes、 p_sep_by_space、および n_cs_precedes を参照してください。
p_sign_posn
フォーマット設定された負でない通貨数量の positive_sign ストリングの位置を示す整数値を指定します。 認識される整数値は、次のものです。
0
通貨数量と int_curr_symbol ストリングまたは currency_symbol ストリングの両方を括弧で囲むことを指示します。
1
positive_sign ストリングが、数量および int_curr_symbol ストリングまたは currency_symbol ストリングの前にくることを指示します。
2
positive_sign ストリングが、数量および int_curr_symbol ストリングまたは currency_symbol ストリングの後にくることを指示します。
3
positive_sign ストリングが int_curr_symbol ストリングまたは currency_symbol ストリングの直前にくることを指示します。
4
positive_sign ストリングが int_curr_symbol ストリングまたは currency_symbol ストリングの直後にくることを指示します。
注:
ILE COBOL では、このキーワードは、ロケールに基づく PICTURE 編集記号 + をフォーマット設定するためにいくつかの他のキーワードと一緒に使用します。 キーワード positive_sign、negative_sign、および n_sign_posn を参照してください。
n_sign_posn
フォーマット設定された負の通貨数量の negative_sign ストリングの位置を示す整数値を指定します。 認識される整数値は、次のものです。
0
通貨数量と int_curr_symbol ストリングまたは currency_symbol ストリングの両方を括弧で囲むことを指示します。
1
negative_sign ストリングが、数量および int_curr_symbol ストリングまたは currency_symbol ストリングの前にくることを指示します。
2
negative_sign ストリングが、数量および int_curr_symbol ストリングまたは currency_symbol ストリングの後にくることを指示します。
3
negative_sign ストリングが int_curr_symbol ストリングまたは currency_symbol ストリングの直前にくることを指示します。
4
negative_sign ストリングが int_curr_symbol ストリングまたは currency_symbol ストリングの直後にくることを指示します。
注:
ILE COBOL では、このキーワードは、ロケールに基づく PICTURE 編集記号 + をフォーマット設定するためにいくつかの他のキーワードと一緒に使用します。 キーワード positive_sign、negative_sign、および p_sign_posn を参照してください。

固有の通貨形式の作成 -- 例

1 つのステートメントの値を変更することによって、カスタマイズされた固有の通貨形式を作成することができます。 たとえば、以下の表に、p_cs_precedes、 p_sep_by_space、および p_sign_posn の各ステートメントの定義された値のあらゆる組み合わせを使用した結果を示します。

表 10. 各種ロケール可変値の組み合わせの結果
p_sep_by_space
2 1 0
p_cs_precedes = 1 p_sign_posn = 0 (¥1.25) (¥ 1.25) (¥1.25)
p_sign_posn = 1 + ¥1.25 +¥ 1.25 +¥1.25
p_sign_posn = 2 ¥1.25 + ¥ 1.25+ ¥1.25+
p_sign_posn = 3 + ¥1.25 +¥ 1.25 +¥1.25
p_sign_posn = 4 ¥ +1.25 ¥+ 1.25 ¥+1.25
p_cs_precedes = 0 p_sign_posn = 0 (1.25 ¥) (1.25 ¥) (1.25¥)
p_sign_posn = 1 +1.25 ¥ +1.25 ¥ +1.25¥
p_sign_posn = 2 1.25¥ + 1.25 ¥+ 1.25¥+
p_sign_posn = 3 1.25+ ¥ 1.25 +¥ 1.25+¥
p_sign_posn = 4 1.25¥ + 1.25 ¥+ 1.25¥+

LC_MONETARY -- 例

以下に、ロケール定義ソース・ファイルにリストされている LC_MONETARY カテゴリーの例を示します。

      LC_MONETARY
      #
      int_curr_symbol    "<U><S><D>"
      currency_symbol    "<dollar-sign>"
      mon_decimal_point  "<period>"
      mon_thousands_sep  "<comma>"
      mon_grouping       3;-1
      positive_sign      "<plus-sign>"
      negative_sign      "<hyphen>"
      int_frac_digits    2
      frac_digits        2
      p_cs_precedes      1
      p_sep_by_space     2
      n_cs_precedes      1
      n_sep_by_space     2
      p_sign_posn        3
      n_sign_posn        3
      #
      END LC_MONETARY