使用变量乘以Math.random()

4
我需要将Math.random()方法与一个变量相乘。举个例子:
a = 2;
b = Math.floor(Math.random()*a);
alert(b);

然而,这并没有做任何事情。我需要以特定的方式编写吗?如果不是,那么为什么当我输入alert(b)或类似内容时javascript会弹出警告。


你想对这个随机变量做什么?除非你在使用像node.js中的repl,否则你必须对变量进行某些操作。 - Foon
1
doesn't do anything” 是什么意思?这段代码是有效的,但是你需要一些输出方式(如 alertconsole.log、DOM 操作、在 REPL 中返回)才能看到结果。 - Bergi
你说它什么意思,不做任何事情? - dencey
代码看起来没问题:http://jsfiddle.net/SdpfK/ - extramaster
2个回答

6

Math.random()函数返回0到1之间的随机数,当你对其进行下取整(floor())后,将其乘以1并不会得到任何东西,因为结果仍为0。


只是一个例子。我现在已经将它改为2,因为这似乎让人感到困惑。 - Aurange
1
多运行几次,你最终会得到不为零的结果。 - Rob
问题在于什么也没有发生。它应该弹出警报,但是什么也没有发生。 - Aurange
那么你的代码其他地方可能存在错误。这个对我来说很好地发出了警报 http://jsfiddle.net/NSqhJ/ - Rob
我已经把除了它以外的所有东西都删除了,但它什么也没做,我甚至把它也删除了,并用总是有效的东西替换了它,但仍然没有任何反应,似乎它根本没有被调用。 - Aurange
不使用调试器。这可能不太好...哦,算了。我显然没有问题,所以我会选择你的答案作为正确答案。无论如何,谢谢。 - Aurange

0

哦,用1相乘是无效操作。尝试使用a=10并查看是否获得更好的结果。


2
好吧,逗我玩。试试 a=10 看看你是否得到了你想要的结果。 - Niet the Dark Absol
你对结果做了什么吗?使用alert?还是document.write - Niet the Dark Absol
1
它可能在10中也不起作用...考虑一些小的分数,如.0293,将其乘以10 = .293。向下取整得到...零。尝试更大的乘数,如1000。 - Ian Atkin
我正在发出警报,但是没有任何反应。 - Aurange
你的控制台有任何错误信息吗?什么都没有发生很奇怪。尝试使用这个JSFiddle并将代码与你的进行比较。有什么不同吗? - Niet the Dark Absol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接