конвертировать целое число в длинный двойной - PullRequest
2 голосов
/ 28 апреля 2011

Я должен создать длинный двойной генератор случайных чисел. Я думаю о линейном конгруэнтном генераторе, потому что мне не нужна случайная последовательность высокой точности. Но как я могу преобразовать целое число в длинный двойной?

1 Ответ

1 голос
/ 28 апреля 2011

Преобразование подразумевается при назначении. (Проверено с помощью 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      
...