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)
4

3 回答 3

3

利用:

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

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

在你学习的时候,养成以 . 结尾的习惯;。Javascript 在要求这一点方面是松懈的,但您应该明确说明——何时可以省略分号的规则有点神秘。

于 2013-07-09T01:23:40.053 回答
0

var1, var2,var3等不是好的变量名。不要使用它们。

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

将字符串解析为整数:

var min = parseInt(prompt("Enter Min value:"), 10);
于 2013-07-09T01:23:01.427 回答
0

prompt返回 astring因此您需要将minand转换max为 a number

var min = Number(prompt("Enter Min value:"));
var max = Number(prompt("Enter max value:"));
于 2013-07-09T01:23:02.847 回答