2013-07-09 49 views
0

我是新来的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) 
+1

解释这是行不通的。当然,到目前为止,我们已经从经验中得出了什么,但它有助于其他人添加这些细节。 –

回答

0

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

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

解析字符串转换为整数:

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

我认为这些变量名被介绍给分解,试图调试它原始表达式:) –

+0

是。我添加了变量来调试每一步中发生的事情。 –

+0

我试过使用parseInt。它现在有效。谢谢。 –

0

prompt返回string所以你需要minmax转换为number

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

感谢您的反馈意见。有用。 –

3

用途:

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

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

当你在学习,请与;结束发言的习惯。 Javascript对于要求这样做并不宽松,但是你应该明确地说明它 - 分号可以省略的规则有点神秘。

+0

非常感谢,现在有效。 –

相关问题