Как сгенерировать случайное число с 6 знаками после запятой?(JavaScript)
Как сгенерировать случайное число с 6 знаками после запятой, например 0.582943 и можно ли задать ему интервал, между числами у которых тоже 6 знаков после запятой, например от 0.200000 до 1 или наподобии?
Ответы (4 шт):
Автор решения: Рома
→ Ссылка
Решил эту задачу такой вот простой функцией:
function rand6(a, b) {
let randombek = Math.random() * ((b * 1000000) - (a * 1000000) + 1) + (a * 1000000);
let randombekFix = randombek.toFixed();
let returnbek = (randombekFix / 1000000).toFixed(6);
return returnbek;
}
rand6(0.20, 0.80);
Автор решения: RottenRat
→ Ссылка
Вопрос не корректно составлен (нету ЯП), но предположу ответ на 2х популярных ЯП - C# и Python.
Python для вашего примера
round(random.uniform(0.2, 1),6)
То есть:
round(random.uniform(%Начальное значение%, %Конечное значение%),%Число знаков после запятой%)
C# для вашего примера:
Convert.ToDouble(x.Next(20000,100000)/100000.0)
То есть:
Convert.ToDouble(x.Next(%Начальное значение% * %10^число знаков после запятой%,%конечное значение% * %10^число знаков после запятой%)/%10^число знаков после запятой%.0)
Автор решения: Stanislav Volodarskiy
→ Ссылка
randomInRange выдаёт случайное целое число в диапазоне [a, b):
const randomInRange = (a, b) => Math.floor(Math.random() * (b - a)) + a;
Использовать так:
for (let i = 0; i < 20; ++i) {
console.log(randomInRange(200_000, 1_000_000) / 1_000_000);
}
$ node random_in_range.js 0.288691 0.283178 0.422066 0.690297 0.592872 0.575667 0.633409 0.49091 0.637342 0.893647 0.90158 0.992978 0.338509 0.780983 0.954807 0.35444 0.380894 0.722978 0.670167 0.357568
Автор решения: Zt.
→ Ссылка
раз пошла такая пьянка, вот вариант с использованием стандартных linux утилит:
printf "0.%06d\n" `shuf -i 200000-999999 -n 1`