浮動小数点 (E) フォーマット項目は、実数の浮動小数点 10 進算術データ値の 文字表記を記述するものです。
|
次の関係が成立していなければなりません。
w >= s = d+1 or w = 0
w ¬= 0 のときは、次のとおりでなければなりません。
s > 0, d >= 0
w の値は field-width、d の値は fractional-digits、 s の値は significant-digits です。
入力の場合は、データ・ストリーム中のデータ値は、実数の 10 進浮動小数点定 数または実数の 10 進固定小数点定数 (どちらの場合も符号はあってもなくてもよ い) でなければならず、それ以外のときは CONVERSION 条件が起こります。データ 値は、指定したフィールド内のどこにあってもかまいません。 (便宜上、符号付き指数の前に付ける E は省略することができます。)
フィールド幅を表す値には、 先行ブランクや後書きブランク、 指数部の桁、正符号 (+) または負符号 (-) (オプション) の桁、 文字 E (オプション) の桁、および小数部の 小数点 (オプション) の桁を計算に入れます。
データ値は、指定されたフィールドの任意の場所に現れることができます。ブランクをフィールド内のデータ値の前後に置くことができ、それらは無視されます。 フィールド全体がブランクのときには、CONVERSION 条件が起こります。 小数点がない場合、fractional-digits は小数部の桁のうち仮想小数点の右側にある桁の桁数を示します。 小数点が数の中にある場合は、fractional-digits の指定は 無効にされます。
field-width が 0 のときは、データ・リスト項目にはなにも割り当てられません。
次に例を示します。
get file(A) edit (Cost) (E(10,6));
このステートメントは、 A から次の 10 文字を取り出して、 それらを浮動小数点 10 進数として解釈します。 小数点は小数部の右端 6 桁の前にあると見なされます。 この数の値は変数 COST の属性に変換され、この変数に割り当てられます。
出力の場合は、データ・リスト項目が浮動小数点に変換され、必要に応じて四捨五入されます。 データの丸めは次のようにして行われます。まず、切り捨てによって右から数字が切り捨てられ、この数字が 5 より大きいか等しい場合は、切り捨てられる数字の左の数字に 1 が追加されます。 この加算が行われると、指数が調整されることがあります。
出力ストリーム中に書き出された文字ストリングは、下記のいずれかの構文になります。
|
正の値のときは w >=s+6、負の値のときは w >=s+7 でなければなりません。
値がゼロ以外のときは、小数部の先頭行がゼロ以外の値になるように指数が調整されます。 値がゼロのときは、小数部のすべての桁 (最右端の桁は除く) でゼロ消去が行われます。
|
正の値のときは w >=s+7、負の値のときは w >=s+8 でなければなりません。
値がゼロ以外のときは、小数部の先頭行がゼロ以外の値になるように指数が調整されます。 値がゼロのときは、小数点の左側にあるすべての桁 (最初の桁は除く) でゼロ消去が行われます。 ほかのすべての桁にはゼロが入ります。
|
正の値のときは w >=d+8、負の値のときは w >=d+9 でなければなりません。
値がゼロ以外の値のときは、小数部分の最初の桁がゼロ以外の値になるように指数が調整されます。 値がゼロの値のときは、どの桁にもゼロが入ります。
指数は 4 桁の整数で、4 桁ともゼロである場合もあります。
フィールド幅が短すぎて有効数字や符号が失われる場合は、SIZE 条件が起こります。 出力の場合、指定したフィールドが文字ストリングでいっぱいにならないときは、文字ストリングは右寄せされ、左側にブランクが埋め込まれます。