将整数转换为长双精度

发布于 2024-11-04 01:45:06 字数 74 浏览 4 评论 0原文

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

I have to create a long double random generator. I am thinking about a linear congruential generator, because I don't need high precision random sequence. But how can I convert an integer to a long double?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风透绣罗衣 2024-11-11 01:45:06

分配时就隐含了转换。 (用 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      

The conversion is implied when assigned. (Tested with gcc):

   program test
   integer  i
   real*10 d

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

... amended ...
I was concerned there was something about the extended types which don't work well, I created a more thorough test:

   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      
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文