JavaScript数学对象:负值,零值和正值

时间:2017-12-07 08:16:24

标签: javascript

我想从-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数学对象中做吗?

3 个答案:

答案 0 :(得分:3)

您可以使用系数11(返回值0 ... 10)并按-5调整数字。

&#13;
&#13;
console.log(Math.floor(Math.random() * 11) - 5);
&#13;
&#13;
&#13;

答案 1 :(得分:2)

尝试这可能是有效的(在那里你可以给随机数一个范围)...

const AotPlugin = require('@ngtools/webpack').AngularCompilerPlugin;

plugins: [
        new AotPlugin({
            tsConfigPath: './tsconfig.json',
            entryModule: path.join(__dirname, 'src/app/app.module#AppModule')
        })
]

REF Link

答案 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);