mercredi 29 mai 2019

Random number generator doesn't produce expected numbers within a given range using values from input fields [duplicate]

This question already has an answer here:

I'm trying to generate a random number between two given values. I'm able to produce this with a pretty standard little function, however when I try to set the maximum and minimum values through an input field, I get some unexpected results.

This is using jQuery, which isn't necessary for this particular function but is needed for the larger project.

Here's an example of what I'm finding:

https://jsfiddle.net/u2k41hzd/

function randomNumber(min, max) {
    points = Math.floor(Math.random() * (max - min + 1) + min);
}

$( "button" ).on( "click", function ( event ) {
    minPoints = $( ".min-points" ).val();
    maxPoints = $( ".max-points" ).val();
    randomNumber(minPoints, maxPoints);
    $(".random").html(points);
});

In the case of the minimum number being 1 and the maximum being 6, I would expect to get numbers between 1 and 6. However, I get numbers between 0 and 5.

If the minimum number is 2 and the maximum 6, I would expect to get numbers between 2 and 6, but get numbers between 0 and 4. Passing in 3 and 6 gives numbers between 0 and 3, and so on.

Ignoring the input values and hard coding them instead seems produce expected results with no issue. Essentially I'm just unsure as to why the input values are behaving as they are. I'm sure I've just misunderstood something or made a mistake somewhere, but I've not been able to determine the reason!




Aucun commentaire:

Enregistrer un commentaire