将整数转换为long double

时间:2011-04-28 14:12:40

标签: fortran90 intel-fortran

我必须创建一个长双随机生成器。我在想一个线性同余生成器,因为我不需要高精度的随机序列。但是如何将整数转换为long double?

1 个答案:

答案 0 :(得分: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