Javascript中的随机生成器,最小值和最大值不起作用

时间:2013-07-09 01:20:44

标签: javascript

我是JavaScript新手。我正在尝试制作一个练习程序,它在最小值和最大值之间生成一个随机数。我在下面的程序中遇到了一个问题。 var2 + min无法正常工作。如果我用实际值替换变量min,那么它可以工作。我做错了什么?

var var1=Math.random()
var min = prompt("Enter Min value:")
var max = prompt("Enter max value:")
alert("min is "+min+" max is "+max)
var var2=var1*(max-min)
var var3=var2+min
var var4=Math.floor(var3)
alert("var1= "+var1+" var2= "+var2+" var3= "+var3+" Var4 "+var4)

3 个答案:

答案 0 :(得分:3)

使用:

var min = parseInt(prompt("Enter Min value:"), 10);
var max = parseInt(prompt("Enter max value:"), 10);

问题是这些变量包含字符串,因此包含+的表达式正在执行字符串连接而不是数字添加。

在你学习的同时,养成用;结束陈述的习惯。 Javascript关于要求这个问题是松懈的,但你应该明确它 - 分号可以省略的规则有点神秘。

答案 1 :(得分:0)

var1var2var3等不是好的变量名。不要使用它们。

您的代码无效,因为prompt返回一个字符串。 1 - "2"-1,但1 + "2""12",因为加法运算符用于字符串连接。

将字符串解析为整数:

var min = parseInt(prompt("Enter Min value:"), 10);

答案 2 :(得分:0)

prompt返回string,因此您需要将minmax转换为number

var min = Number(prompt("Enter Min value:"));
var max = Number(prompt("Enter max value:"));