我必须创建一个长的双随机发生器。我正在考虑一个线性同余生成器,因为我不需要高精度随机序列。但是如何将整数转换为长双精度型呢?
问问题
1832 次
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 回答