【问题标题】:Random Numbers JavaScript随机数 JavaScript
【发布时间】:2016-11-05 19:15:55
【问题描述】:
<head>
<script>
function getRandomArbitrary(min, max) {

    var r = Math.floor(Math.random() * (max - min + 1) + min);
    document.getElementById('demo').innerHTML = r; 
}
</script>
</head>

<body>
<h1>randomize</h1>
  a: <input type="text" id='low'><br>
  b: <input type="text" id='high'><br>
  <button onclick="getRandomArbitrary(document.getElementById('low').value,document.getElementById('high').value)">Get</button>


<div id='demo'></demo>
</body>

我有上面的代码,通过它我试图在文本 a 和 b 给出的范围之间生成随机数。当我手动将值传递给此函数(例如 10,15)时,它可以正常工作(例如 13)。但是当我按下按钮并要求它从文本中获取值并计算该范围内的随机数时,它无法这样做并计算超出范围的数字(有时)。

我花了很多时间在上面,看不出问题出在哪里。请帮我。

【问题讨论】:

    标签: javascript random numbers


    【解决方案1】:
    var min = (your minimum number value);
    var max = (your maximum number value);
    var myRandom = Math.floor(Math.random() * max) + min;
    

    要获得随机数作为两个数之间的整数,可以使用函数; 借助这个函数,您将生成一个介于 min 和 max 之间的整数

    【讨论】:

      【解决方案2】:

      @Ojas Kale,第一件事。最小值和最大值正在传递字符串。尝试先将它们解析为整数。

      getRandomArbitrary(parseInt(document.getElementById('low').value),parseInt(document.getElementById('high').value));
      

      另外我请修改 getRandom 函数如下。不需要四舍五入吧?

      function getRandomArbitrary(min, max) {
      
          var r = Math.floor(Math.random() * (max - min + 1) )+ min;
          document.getElementById('demo').innerHTML = r; 
      }
      

      【讨论】:

        【解决方案3】:

        将值转换为Number,然后传递给函数

        Unary plus (+)unary plus operator 在其操作数之前并计算其操作数,但尝试将其转换为 number,如果它还没有的话。

        function getRandomArbitrary(min, max) {
          var r = Math.floor(Math.random() * (max - min + 1) + min);
          document.getElementById('demo').innerHTML = r;
        }
        <h1>randomize</h1>
        a:
        <input type="text" id='low'>
        <br>b:
        <input type="text" id='high'>
        <br>
        <button onclick="getRandomArbitrary(+document.getElementById('low').value,+document.getElementById('high').value)">Get</button>
        <div id='demo'></div>

        【讨论】:

        • 完美。现在工作正常。非常感谢。
        【解决方案4】:
        Math.floor(Math.random() * max) + min 
        

        【讨论】:

        • 问题不在于寻找随机数的逻辑。当我从 html 页面传递值时,问题出在某个地方。
        猜你喜欢
        • 2010-11-10
        • 2011-07-10
        • 1970-01-01
        • 1970-01-01
        • 2016-04-01
        • 2013-07-05
        • 1970-01-01
        • 1970-01-01
        • 2011-01-27
        相关资源
        最近更新 更多