2014-11-24 5 views
2

Я не могу показаться, чтобы сгенерировать случайные поплавка числа от 0,0 к 1.0 с Math.floor((Math.random() * 1.0) + 0.0);Javascript случайного числа в диапазоне от 0 до 1

Есть обходной путь для этого?

+0

'Math.floor()' вероятно, превращает * любое * значение в диапазоне '[0.0, 1.0>' в 0.0. Избавьтесь от вызова 'Math.floor()'. Что должны делать '* 1.0' и' + 0.0'? Просто используйте простой 'Math.random()' и избавьтесь от остальных. –

+0

Может быть, 'Math.round (Math.random())'? :) – starikovs

ответ

2

Math.random() as is будет генерировать случайное число с плавающей точкой между 0.0 и 1.0.

Рабочий пример:

document.getElementById("generate").onclick = function() { 
 
    document.getElementById("random").value = Math.random(); 
 
};
<button id="generate">Generate random number</button> 
 
<input id="random">

+0

От 0 включительно до 1 эксклюзивных. Поэтому он никогда не вернется. – dusky

+0

@dusky Правильно. 'Math.random()' всегда генерирует числа для диапазона '[0, 1)'. Решение min-max, предложенное OP, работает одинаково. – VisioN

0

Как вы можете видеть, умножая на 1,0 и добавления 0,0 совершенно бесполезно. Что нарушает ваш механизм, это Math.floor, который, скорее всего, уменьшает ваш номер до 0.0, независимо от того, какое число между 0.0 и 1.0 возвращает Math.random.

Смежные вопросы