随机数生成奇怪的输出

时间:2016-10-05 11:56:34

标签: javascript

我正在尝试使用localStorage制作随机数生成器。

我不知道为什么,但我的代码不起作用。我已经尝试过所有事情,但我一直对此感到困惑。

这是我的代码:

localStorage.setItem("MaxInputValue_Storage",10);
localStorage.setItem("MinInputValue_Storage",5);


function Random_Number_Generation(Max,Min) {
  console.log(Min);
  console.log(Max);
  var Random_Number = Math.floor(Math.random() * (( Max - Min ) + 1) + Min );
  console.log(Random_Number);
};

Random_Number_Generation(localStorage.getItem("MaxInputValue_Storage"),localStorage.getItem("MinInputValue_Storage"));

怎么回事?

编辑: 我希望得到一个5-10的值,但是我从0到5得到一个值。

1 个答案:

答案 0 :(得分:0)

localStorage值是字符串格式,如果任何操作数是字符串,则+运算符作为连接运算符。 在你的代码中 来自localStorage的'Min'是“5”(它是字符串), Math.random()*((Max - Min)+ 1)返回前4.941的数字,所以4.941 +“5”将是4.9415,这就是你得到0到4之间的值的原因。使用parseInt将该字符串值转换为Number这样你就可以得到理想的结果。

var Random_Number = Math.floor(Math.random() * (( Max - Min ) + 1) + parseInt(Min));