Конвертировать целое число в длинный двойной
Я должен создать длинный двойной генератор случайных чисел. Я думаю о линейном конгруэнтном генераторе, потому что мне не нужна случайная последовательность высокой точности. Но как я могу преобразовать целое число в длинный двойной?
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