2

long double ランダム ジェネレーターを作成する必要があります。高精度のランダムシーケンスは必要ないため、線形合同ジェネレーターについて考えています。しかし、整数を long double に変換するにはどうすればよいでしょうか?

4

1 に答える 1

1

変換は、割り当て時に暗示されます。(gcc でテスト済み):

   program test
   integer  i
   real*10 d

   i = 10000
   i = i * 101
   d = i
   write (*,*) 'result is', d
   end

...修正...
拡張型がうまく機能しないのではないかと心配していたので、より完全なテストを作成しました。

   program test
   integer  i
   real     f
   double precision d
   real*10  ld

   i = 100000
   i = i * 101 + 101
   f = i * 1.1
   d = f * 1.1
   ld = d * 1.1
   write (*,*) 'result is', i, f, d, ld
   end


[wally@zenetfedora ~]$ ./a.out
 result is    10100101   11110111.       12221122.364885688        13443234.892748519537      
于 2011-04-28T14:46:13.073 に答える