Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, 言語解説書

F フォーマット項目

固定小数点 (F) フォーマット項目は、実数の固定小数点 10 進算術値の文字表記を 記述するものです。

構文図を読む構文図をスキップする>>-F--(--field-width-------------------------------------------->
 
>--+----------------------------------------+--)---------------><
   '-,fractional-digits-+-----------------+-'
                        '-,scaling-factor-'
 
field-width
フィールド内の桁の総数を表します。 この値は、フォーマット項目が使用されるたびに計算されて整数値 w に変換されます。 変換された値は、負数であってはなりません。
fractional-digits
小数点の右側にある小数部の桁数を表します。 この値は、フォーマット項目が使用されるたびに計算されて整数値 d に変換されます。 変換された値は、負数であってはなりません。 fractional-digits が省略された場合、この値は 0 と見なされます。
scaling-factor
小数部になければならない数字の桁数を表しています。 この値は、フォーマット項目が使用されるたびに計算されて整数値 p に変換されます。

入力の場合は、データ・ストリーム中のデータ値は、実数の 10 進固定小数点定 数 (符号はあってもなくてもよい) でなければならず、それ以外のときは、 CONVERSION 条件が起こります。データ値は、指定したフィールド内のどこにあ ってもかまいません。 フィールド内のデータ値の前後にブランクがあってもよく、それらのブランクは 無視されます。 フィールド全体がブランクのときは、ゼロと解釈されます。

scaling-factor を省略し、しかもフィールド内に小数点がない場合、 fractional-digits を表す式は、データ値の桁のうち仮想小数点の右 側にある桁の桁数を示します。 データ値の中に小数点がある場合は、fractional-digits を表す式は 無効にされます。

scaling-factor を指定すると、データ・ストリーム中のデータ値に、10 の p 乗 (p はスケール因数を表す整数値) が乗算されます。 したがって、p が正の数ならば、そのデータ値の小数点は、指定された位置から右へ p 桁分移動したところにあるものと見なされます。 また、p が負の数ならば、そのデータ値の小数点は、与えられた位置 から左へ p 桁分移動したところにあるものと見なされます。 小数点がつく位置は、実際に小数点があればその位置であり、小数点が示されていなければ fractional-digits を表す式によって指定された位置です。

field-width が 0 のときは、データ・リスト項目にはなにも割り当てられません。

出力の場合は、データ・リスト項目が必要に応じて固定小数点に変換されます。 浮動小数点データは、FIXED DECIMAL (N,q) に変換されます。 ここで q は、fractional-digits に指定した値です。 ストリーム中のデータ値は、必要に応じて四捨五入された文字表記の実数の 10 進固定小数点であり、指定したフィールドに右寄せで入れられます。

10 進固定小数点タイプから文字タイプへの変換は、通常の変換規則に従って 行われます。 余分な桁は、変換後のストリングの数値の前にブランクとして示されます。 また先行ゼロはブランクに変換されるので (ただし小数点のすぐ左のゼロは除く)、数値の前に余分のブランクが現れることがあります。 小数点または負符号 (-) が書き出されるときは、どちらも先行ブランクの 1 つと置き換わります。

field-width だけを指定したときは、数の整数部分だけが書き出されます。小数点は示されません。

field-widthfractional-digits を指定したときは、 数の整数部分と小数部分の両方が書き出されます。 fractional-digits の値 (d) がゼロより大きければ、右端 d 桁の前に小数点が挿入されます。 fractional-digitsd より小さければ、後続のゼロが付けられます (値 dfield-width より小さくなければなりません)。 項目の絶対値が 1 より小さいときは、小数点の前に 0 が 1 つ付けられます。 小数点の左側にあるすべての桁 (すぐ左の 1 桁は除く) では、先行ゼロのゼロ消去が行われます。

データの丸めは次のようにして行われます。 切り捨てによって、右の切り捨てられる数字が 5 以上の場合は、 切り捨てられる数字の左の数字に 1 が追加されます。

出力において、データ・リスト項目が 0 より小さい場合は、 負符号 (-) が文字表示の前に付けられます。0 より大きいか等しい場合は、符号は付けられません。 したがって、負の値の場合には、符号、小数点、および小数点のすぐ左の 0 を桁数 として field-width に含めることを考慮する必要があります。

field-width が短すぎて文字が失われる場合は、SIZE 条件が起こります。

以下に例を示します。

  declare Total fixed(4,2);
  put edit (Total) (F(6,2));

この PUT ステートメントでは、Total の値を文字表記の固定小数点数に変換し、 出力ファイル SYSPRINT に書き出すことを指定しています。 最後の 2 つの数字の前に小数点が挿入され、この数は 6 文字フィールドに 右寄せで入れられます。 先行ゼロ (小数点のすぐ左にあるゼロは除く) はブランクに変えられ、必要に応じて 負符号 (-) が最初の数字の左に付きます。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)