数値式のデータ型

数値式中のすべての演算対象が同じデータ型ならば,結果もやはりその型となります。

式中に異なるデータ型の演算対象が混在している場合,その式の評価と,結果として得られる値のデータ型は,各データ型に関連付けられた順位に依存します。次の表に,各データ型に関連付けられた順位を示します。

データ型 順位
LOGICAL(1) および BYTE 最低
LOGICAL(2)    .
LOGICAL(4)    .
LOGICAL(8)    .
INTEGER(1)    .
INTEGER(2)    .
INTEGER(4)    .
INTEGER(8)    .
REAL(4)    .
REAL(8) 1    .
REAL(16) 2    .
COMPLEX(4)    .
COMPLEX(8) 3    .
COMPLEX(16) 2 最高
1 DOUBLE PRECISION
2 VMS と U*X
3 DOUBLE COMPLEX

異なるデータ型の 2 つの数値演算対象に対する演算によって生成された値のデータ型は,演算に含まれる最も順位の高い演算対象のデータ型となります。たとえば,整数型と実数型の演算対象に対する演算から得られる値は実数型です。ただし,COMPLEX(4) または COMPLEX(8) データ型と,DOUBLE PRECISION データ型が含まれる演算は,COMPLEX(8) の結果を生成します。

式のデータ型は,その式の最終演算結果のデータ型であり,以下の規則に従って決定されます。

これらの規則は,一般に,片方の演算対象が定数である数値演算にも適用されます。ただし,実数または複素数の定数が高精度の式で使用されている場合,定数の高い精度は保たれます。これは,定数の DOUBLE PRECISION (REAL(8)) または REAL(16) (VMS と U*X) 表現が与えられたかのような結果になります。たとえば,1.0D0 + 0.3333333 という式は,1.0D0 + 0.3333333000000000D0 のように扱われます。