簡體   English   中英

為什么我的Javascript代碼中的隨機數比加起來更串聯?

[英]Why is My Random Number in Javascript Code Concatenating Rather Than Adding?

我正在編寫一個基本的隨機數生成器(通過freeCodeCamp進行自我教學,將其用於與2個小男孩一起玩游戲)。 我正在使用沒有添加CSS的基本HTML作為該功能的DOM和Javascript客戶端(我的長輩是5,我們有一個他喜歡向人們展示的家族博客)。

問題在於下面的代碼在一定程度上起作用-Math隨機函數很好,它在Math.floor上正常工作,並且乘法*(maximum-minimum +1)都按預期工作。

問題是最后一個段不起作用:+最小值。 從結果中,我看到公式可以生成一個結果,直到並包括乘以括號的結果,但是最后將最小值串聯起來,而不是將其添加到結果中。

當我第一次發現問題時,我已經通過parseInt將最大值和最小值轉換為整數,以防萬一那里有一個問題(我不明白為什么它們在乘法運算中都可以正常工作),但是那當然沒有區別。

  function randomNumberFunction(maximum, minimum) { var numRan; var maximum = document.getElementById("maximum").value; var minimum = document.getElementById("minimum").value; parseInt(maximum); parseInt(minimum); numRan = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum; alert(numRan); } 
 <div id="dice"> <form name="randomDice"> <h1>Get a random number</h1> <p>Maximum</p> <input id="maximum" type="number" name="random"><br> <p>Minimum</p> <input id="minimum" type="number" name="random"><br> <br> <button onclick="randomNumberFunction()">Get a random number</button> </form> </div> 

我希望能夠捕獲用戶輸入的最小值和最大值,並從該范圍生成一個隨機整數。 相反,當我輸入最小1,最大4或21時,會得到類似01的值;而當輸入最小3,最大10時,則得到63的值。

轉換最小和最大變量時,您沒有分配值

嘗試這個:

function randomNumberFunction(maximum, minimum) {
  var numRan;
  var maximum = document.getElementById("maximum").value;
  var minimum = document.getElementById("minimum").value;
  maximum = parseInt(maximum);
  minimum = parseInt(minimum);

  numRan = Math.floor(Math.random() * (maximum - minimum + 1)) + minimum;
  alert(numRan);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM