如何生成十进制数?

时间:2016-05-01 20:50:56

标签: javascript

我的功能是随机生成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);




4 个答案:

答案 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);