获取介于0.0200和0.120之间的随机数(浮点数)

dan*_*mes 47 javascript

我需要使用JavaScript创建一个介于0.0200和0.120之间的随机数.我该怎么做?

Ale*_*nco 107

你可以用

(Math.random() * (0.120 - 0.0200) + 0.0200).toFixed(4)
Run Code Online (Sandbox Code Playgroud)

toFixed(n)用于将数字转换为字符串,仅保留"n"小数.

希望它有帮助^ _ ^

  • +1.对于那些好奇的人,我计算了这个函数的标准偏差,以确保它具有"随机性"的平均分布 - [查看结果](https://gist.github.com/naomik/6030653).这些事情对我来说很有趣(http://stackoverflow.com/questions/9407892/how-to-generate-random-sha1-hash-to-use-as-id-in-node-js/14869745 #14869745). (12认同)
  • 围绕该东西扔一个parseFloat(),这对我来说很完美。 (2认同)

Gui*_*nge 13

这个给你:

function generateRandomNumber() {
    var min = 0.0200,
        max = 0.120,
        highlightedNumber = Math.random() * (max - min) + min;

    alert(highlightedNumber);
};

generateRandomNumber();
Run Code Online (Sandbox Code Playgroud)

我理解你真正的问题 - 你不知道如何在浮点数之间得到一个随机数,对吧?顺便说一句,答案之前已经过去了.

要使用代码,只需单击此处jsFiddle.

更新

要获取小数的前四个数字,请使用.toFixed(3)方法.我在jsFiddle上做了一个例子.


Vic*_*inn 7

如果你想要生成那个和其他随机数字或东西,我建议看看Chance库.它提供了一个很好的抽象层,因此您不必使用Math.random()并编写自己的抽象层.

chance.floating({min: 0.02, max: 0.12});
Run Code Online (Sandbox Code Playgroud)

完全披露:我是作者,所以我有点偏见:)

此外,如果这是你需要生成的唯一随机事物,或者它是客户端,其中大小是一个真正的问题,我建议只使用上面的建议之一.不值得几个Kb,有几行会做.