我想从-5 ...... 0 ....随机输入这样的数字。
<!DOCTYPE html>
<html>
<body>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
document.getElementById("demo").innerHTML =
Math.floor(Math.random() * 7-1);
}
</script>
</body>
</html>
在这种情况下,它只返回-1。有可能在javascript数学对象中做吗?
答案 0 :(得分:3)
您可以使用系数11
(返回值0 ... 10)并按-5
调整数字。
console.log(Math.floor(Math.random() * 11) - 5);
&#13;
答案 1 :(得分:2)
尝试这可能是有效的(在那里你可以给随机数一个范围)...
const AotPlugin = require('@ngtools/webpack').AngularCompilerPlugin;
plugins: [
new AotPlugin({
tsConfigPath: './tsconfig.json',
entryModule: path.join(__dirname, 'src/app/app.module#AppModule')
})
]
答案 2 :(得分:0)
在这种情况下,它只返回-1。可以在javascript中完成 数学对象?
您需要使用括号()
,在您的情况下,它会导致Math.floor(Math.random() * 7-1 )
=&gt; Math.floor(0.xxx-1 )
=&gt; Math.floor(-0.xxx )
=&gt; -1
成功
Math.floor(Math.random() * (7-1) );
我想从-5 ...... 0 .... 5中随机抽取这样的数字。
首先得到0到5之间的数字
Math.floor(Math.random() * (5-0) );
然后将 1 或 -1 随机乘以
var value = Math.floor(Math.random() * (5-0) );
var sign = window.performance.now() % 2 == 1 ? 1 : -1; //get the current timestamp of the system in nanoseconds (something like 1512635632715) and checking if that number is even or odd
value *= sign ;
使用纳秒而不是毫秒添加演示
function generateRandom() {
var value = Math.floor(Math.random() * (5 - 0));
var sign = window.performance.now() % 2 == 1 ? 1 : -1;
value *= sign;
return value;
}
var arr = [];
for( var counter = 0; counter < 100; counter++)
{
arr.push(generateRandom());
}
console.log(arr);