2

Mac OS X10.8でgfortran4.7.1を使用して、特定の精度を使用して単純なプログラムをコンパイルしています。

program simple
  implicit none
  integer, parameter :: l = selected_real_kind(18,100)
  real(kind=l) :: myNum
  myNum = 0.123456789123456789
  print '(f18.12)', myNum
end program simple

コンパイルして実行すると0.123456791043、要求した精度が得られていないことを明らかに示しています。

しかし、私がコンパイルすると-fdefault-real-8、正しい答えが得られます。もちろん、先に進んでオプションを使用することもできますが、これがバグなのか、それとも正当な理由がないのか疑問に思わずにはいられません。selected_real_kindコードで精度を指定できるようにすることが目的であると思われる場合、コード自体の外で実際のサイズを指定する必要がありますか?

4

1 に答える 1

2

ごめん。_l番号割当に追加する必要があります。

于 2012-08-15T01:21:46.743 に答える