実定数は,数学的な実数の値を近似したものです。定数の値は正,ゼロ,または負です。
次に,指数部なしの実定数の一般的な形式を示します。
[s]n[n...][_k]
指数部を持つ実定数は,以下のいずれかの形式を持ちます。
[s]n[n...]E[s]nn...[_k] [s]n[n...]D[s]nn... [s]n[n...]Q[s]nn...
s
符号。負符号 (-) は必須,正符号 (+) は省略可能です。
n
10 進の数字 (0 ~ 9)。実定数が指数部を持たない場合,小数点が必ず宣言されていなくてはなりません。
k
省略可能な種別パラメタ。4 は REAL(4),8 は REAL(8),16 は REAL(16) (VMS と U*X) を表します。先頭に下線 (_) をつける必要があります。
規則と振る舞い
有効数字を数えるときには,先頭のゼロ (最初のゼロ以外のけたの左側にあるゼロ) は無視されます。たとえば,定数 0.00001234567 では,ゼロ以外の数字すべてが有効数字として数えられ,ゼロはすべて無視されます (個々の種別パラメタが一般に持つ有効数字については,後の項を参照してください)。
指数は,その前にある実定数または整定数に 10 の何乗を掛けるかを示しています (たとえば,1.0E6 は,1.0 * 10**6 という値を表しています)。
指数部なしの実定数は,(基本設定では) 単精度 (REAL(4)) 定数です。浮動小数点定数の形式を制御するコンパイラ・オプション /fpconstant を指定することで,基本の振る舞いを変更することができます。
実定数が指数部を持たない場合,文字列中に (省略可能な種別パラメタの前の任意の場所に) 必ず小数点が存在していなくてはなりません。指数部がある場合,指数部の前にある文字列中で,省略可能な小数点を宣言することができます。指数部に小数点を含むことはできません。
指数文字 E は,省略可能な種別パラメタが別の種別値を宣言していなければ,単精度実定数 (REAL(4)) を示します。たとえば,-9.E2_8 は倍精度定数です (これは -9.D2 と書くこともできます)。
指数文字 D は,倍精度実定数 (REAL(8)) を示します。
OpenVMS,Tru64 UNIX,および Linux システムでは,指数文字 Q は 4 倍精度実定数 (REAL(16)) を示します。
負の実定数の前に負符号を付ける必要があります。正定数の前の正符号は省略可能です。同じように,指数文字 (E,D,または Q) と負の指数の間には負符号を付ける必要がありますが,指数文字と正の指数の間の正符号は省略可能です。
実定数が指数文字を含んでいる場合,指数欄を省略することはできません。ただし,指数欄に 0 を宣言することは可能です。
指数文字と種別パラメタの両方を使って実定数を宣言するときには,指数文字は E でなくてはならず,種別パラメタは指数部の後に置かなくてはなりません。