数値をストリングとしてフォーマット設定および構文解析する

ストリング・データ・タイプと数値データ・タイプの間の変換の場合、CAST 関数の FORMAT パラメーターで、オプションのフォーマット設定式を提供できます。ストリング・タイプから の変換の場合、フォーマット設定式は、ソース・ストリングがターゲット・データ・タイプを満たすように構文解析される方法を定義します。ストリング・タイプへの 変換の場合、ソース式のデータがターゲット・ストリングにフォーマット設定される方法を定義します。

以下の数値変換の場合に FORMAT 式を指定できます。(日時変換の場合の FORMAT 式の指定については、日時をストリングとしてフォーマット設定および構文解析するに説明されています。)
  • いずれかのストリング・データ・タイプ (BIT、BLOB、または CHARACTER) から、以下のタイプへのキャスト
    • DECIMAL
    • FLOAT
    • INTEGER
  • 上記のリストの項目のいずれかの数値データ・タイプから、いずれかのストリング・データ・タイプ (BIT、BLOB、または CHARACTER) へのキャスト
フォーマット設定式は以下の 3 つの部分で構成されます。
  1. 正数を定義する subpattern
  2. 負の数値を定義するオプションの subpattern (subpattern を 1 つしか定義しないと、正のパターンの前に負符号 (-)を付けて負の数値として使用します。)
  3. オプション・パラメーター groupsep および decsep

構文

パラメーター

chars

ゼロ個または任意数の文字のシーケンス。表 1 にリストされている特殊文字以外の すべての文字を使用できます。

decsep

数値の整数の部分と小数の部分の区切り文字 (小数点) として使用される 1 つ以上の文字。デフォルトの小数点はピリオド (.) です。

digits

表 1 にリストされている 1 つ以上の数値トークン (0 # - + , . ) のシーケンス。

groupsep

大きな数値を読みやすくするために整数の桁間の区切り文字として使用される 1 つ以上の文字 (グループ化区切り文字)。デフォルトのグループ化区切り文字はありません (つまり、桁のグループ化やグループの区切りはありません)。

通常はグループ化は千単位で行われますが、パターン別かロケール別に再定義できます。以下の 2 つのグループ化サイズがあります。
1 次グループ化サイズ
最下位の整数の桁数として使用されます。
2 次グループ化サイズ
他のすべての整数の桁数として使用されます。
1 次グループ化サイズと 2 次グループ化サイズはほとんどの場合同じですが、違う場合もあります。例えば、パターン #,##,##0 が使用されている場合は、1 次グループ化サイズは 3 で 2 次サイズは 2 です。123456789 という数値は "12,34,56,789" というストリングになります。

複数のグループ化区切り文字を (上記の例のように) 使用する場合、右端の区切り文字は 1 次サイズを定義し、右端から 2 番目の区切り文字は 2 次サイズを定義します。

subpattern

subpattern は、以下のもので構成されます。
  1. オプションの接頭部 (chars)
  2. 整数を表す必須パターン
  3. 小数位を表すオプションのパターン
  4. 指数 (その前の数値を何乗するかを表す数値) を表すオプションのパターン
  5. オプションの接尾部 (chars)
subpattern の 2、3、および 4 つ目の部分は以下の表のトークンによって定義されます。
表 1. 数値/ストリング変換に使用するフォーマット設定用 subpattern を定義するトークン
トークン 意味
0 先行ゼロを含む任意の数字
# 先行ゼロ以外の任意の数字 (この表の後の、0 と # の間の違いに関する説明を参照)
. 小数点
+ 正数の接頭部
- 負の数値の接頭部
, グループ化区切り文字
E/e 数値と指数を区切ります。
; サブパターンの境界
' 特殊文字を囲むために使用する引用符。出力に引用符が必要な場合は、2 つの引用符 ('') でなければなりません。
* 埋め込み指定子。アスタリスクの後の文字を使用して数値を埋め込み、フォーマット制御パターンの長さに合わせます。

# 文字と 0 文字は数字の置換に使用されます。これらの文字の違いは、# 文字は置換対象の数値がないと除去されることです。例えば、10 をパターン #,##0.00 でフォーマット設定すると "10.00" になりますが、0,000.00でフォーマット設定すると "0,010.00" になります。

埋め込み文字を指定するには、アスタリスクを使用してください。アスタリスクを 2 つの chars 領域 (接頭部および接尾部) のどちらかに使用すると、その直後の文字が出力の埋め込みに使用されます。埋め込みは一度だけ指定できます。例えば、パターン *x#,###,##0.00 を 1234 に適用すると、"xxx1,234.00" になります。1234567 に適用すると、"1,234,567.00" になります。

フォーマット設定パターンの使用例

表 2. サンプルの数値入力からのストリング出力を示すフォーマット設定パターンの例
パターン 入力数値 出力ストリング
+###,##0.00;-###,###,##0.00:groupsep='':decsep=, 123456789.123 "+123'456'789,12"
##0.00 1000000 "1000000.00"
##0.00 3.14159265 "3.14"
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ak05615_