我的功能是随机生成2个数字之间的数字。但我不知道如何得到一个小数,如5.5,7.3,8.2。这就是我到目前为止所做的。
function getrandomnumber(min, max)
{
return (min + Math.floor((max - min + 1) * Math.random()))
}
var a=getrandomnumber(1,10)*100/1000;
document.write(a);

答案 0 :(得分:2)
带支票的提案。它可以防止整数。
function getrandomnumber(min, max) {
function f() {
return Math.floor(min + (max - min + 1) * 10 * Math.random()) / 10;
}
var v = f();
while (Math.floor(v) === v) {
v = f();
}
return v;
}
var a = getrandomnumber(1,10);
document.write(a);
答案 1 :(得分:0)
如果您只是希望函数返回值而不必在之后进行除法,请将其修改为:
function getrandomnumber(min, max)
{
return (min + Math.floor((max - min + 1) * Math.random()*10))/10
}
var a=getrandomnumber(1,10);
document.write(a);
答案 2 :(得分:0)
您可以使用MDN中的this示例
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
var a = getRandomArbitrary(1,10);
document.write(a)
答案 3 :(得分:0)
我希望将其分解为多个功能以实现灵活性:
function roundNumber(number, decimalPoints) {
return Math.floor(number * Math.pow(10, decimalPoints)) / Math.pow(10, decimalPoints);
}
//Generates a random number between max and min and rounds it to two decimal places.
function generateNumber(min, max) {
//Generate a random number between min and max
var randomNumber = ((max - min) * Math.random()) + min;
//Return a number rounded to a given number of decimal places
return roundNumber(randomNumber, 1);
}
function generateRandomDecimal() {
var result = generateNumber(1, 10);
// until you get a decimal result, keep generating the random number.
while (result % 1 === 0) {
result = generateNumber(1, 10);
}
return result;
}
var a = generateRandomDecimal();
document.write(a);