Консультация № 171991
08.09.2009, 02:17
0.00 руб.
0 8 1
Здравствуйте уважаемые эксперты! Подскажите пожалуйста, можно ли random'ом реализовать генерацию случайных чисел, только не целых, а дробных? Если нет, есть ли другой способ? Нужно получить n - чисел (псевдослучайных) от 1 до 999 с тремя знаками после комы (тоже случайными). Например 892.762 или 3.612

Обсуждение

Неизвестный
08.09.2009, 02:34
общий
это ответ
Здравствуйте, Николай // Programmator .
Попробуйте такое выражение

l=random(1000)+random(1000)*0.001;
5
Огромное Вам спасибо!!!
давно
Мастер-Эксперт
425
4118
08.09.2009, 05:03
общий
Николай // Programmator :
...тремя знаками после комы...

А кома с кем случилась? И долго ли программиста после комы откачивали?
Вы по русски писать категорически не хотите?
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
08.09.2009, 07:41
общий
sir Henry:
В принципе Ковалев Никита Викторович ответил правильно, только вот диапазон получается от 0 до 999, может стоит исправить на:
l=1+random(999)+random(1000)*0.001;
давно
Мастер-Эксперт
425
4118
08.09.2009, 08:35
общий
А если попроще? Например так:
Код:
Function RandomNumber: Currency;
Begin
Randomize;
Result:=Random(1000)+Random;
End;
Тип Currency автоматически ограничивает количество знаков после запятой четырьмя штуками. Если количество знаков критично, тогда надо округлять.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
08.09.2009, 10:02
общий
sir Henry:
Извиняюсь...
Неизвестный
08.09.2009, 10:03
общий
Спасибо всем за помощь!
давно
Профессионал
304622
583
15.09.2009, 17:09
общий
Цитата: Вадим Исаев ака sir Henry

Result:=Random(1000)+Random;


Можно ещё проще:

Result:=random*1000;
Неизвестный
15.09.2009, 21:18
общий
Сергей Бендер:
Ай, молодцА.
Форма ответа