Как сгенерировать случайное число с 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`
→ Ссылка