I'm making a simple random number generator game using JS and HTML. In this game you can set minimum and maximum values of random numbers.
However, when setting the variable and recording the result, an impossible number appears. For example, if I set the minimum value to 50 and the maximum value to 100, it will show answers like 58650 , 16750 , or 31450 . I noticed that the smallest number you set always appears at the end. I've tried changing the format and changing the code but nothing seems to work.
Does anyone know the solution to this problem? Your help is greatly appreciated, thank you! !
Home.html (probably not the problem):
Random Number Generator Random Number Generator
Enter 2 numbers that you want the random number to be in between
-
Home.js:
const usermininput = document.getElementById("inputmin") const usermaxinput = document.getElementById("inputmax") const usersubmitBtn = document.getElementById("submitbtn") const result = document.getElementById("result") function random(min, max) { return Math.floor(Math.random() * max) + min; } usersubmitBtn.addEventListener("click", () =>{ const usermin = usermininput.value const usermax = usermaxinput.value console.log(random(usermin,usermax)) })
The
valueattribute of the input element is a string, so you need to convert it to a number first (otherwise,performs string concatenation instead of addition). This can be done using the unary plus operator, i.e.const usermin = usermininput.valueandconst usermax = usermaxinput.value.Alternatively, use
and access thevalueAsNumberproperty.const usermininput = document.getElementById("inputmin") const usermaxinput = document.getElementById("inputmax") const usersubmitBtn = document.getElementById("submitbtn") const result = document.getElementById("result") function random(min, max) { return Math.floor(Math.random() * max) + min; } usersubmitBtn.addEventListener("click", () => { const usermin = usermininput.valueAsNumber; const usermax = usermaxinput.valueAsNumber; console.log(random(usermin, usermax)); })