倍精度変数に代入された単精度定数を倍精度で評価するようコンパイラーに指示します。
Windows: [Floating Point (浮動小数点)] > [Extend Precision of Single-Precision Constants (単精度定数の精度を拡張する)]
Linux: なし
Mac OS X: [Floating Point (浮動小数点)] > [Extend Precision of Single-Precision Constants (単精度定数の精度を拡張する)]
IA-32、インテル® 64、IA-64 アーキテクチャー
Linux および Mac OS X: |
-fpconstant -nofpconstant |
Windows: |
/fpconstant /nofpconstant |
なし
nofpconstant |
倍精度変数に代入された単精度定数は、Fortran 95/90 標準規則に従って単精度で評価されます。 |
このオプションは、倍精度変数に代入された単精度定数を倍精度で評価するようコンパイラーに指示します。
これは拡張精度です。倍精度変数に代入された単精度定数は単精度で評価するよう定めている Fortran 95/90 標準には従っていません。
このオプションを使用すると、拡張精度が許容されている FORTRAN 77 と互換性を維持することができます。このオプションが使用されない場合、FORTRAN 77 コンパイラー用に作成された一部のプログラムでは、倍精度変数に代入された単精度定数が倍精度で評価されることを前提としているために、浮動小数点演算の結果が変わることがあります。
なし
次の例では、fpconstant を指定すると、D1 と D2 に同じ値が代入されます。fpconstant オプションを省略すると、コンパイラーは Fortran 95/90 標準に基づく動作を行い、D1 に精度の低い値を代入します。
REAL (KIND=8) D1, D2
DATA D1 /2.71828182846182/ ! REAL (KIND=4) value expanded to double
DATA D2 /2.71828182846182D0/ ! Double value assigned to double