获取 0.0200 到 0.120 之间的随机数(浮点数)[重复]

Posted

技术标签:

【中文标题】获取 0.0200 到 0.120 之间的随机数(浮点数)[重复]【英文标题】:Get a random number between 0.0200 and 0.120 (float numbers) [duplicate] 【发布时间】:2013-07-17 14:20:48 【问题描述】:

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

【问题讨论】:

不是与***.com/questions/1527803/… 的副本。这个问题专门询问浮点数,另一个是整数。答案不兼容,因为它们使用 Math.floor()。 @TedBigham,链接副本中的第一个示例不使用地板。 不使用 floor 的链接答案也只给出了包含/排他的答案。这个问题是模棱两可的,并且基于他们正在寻找包容性/包容性的公认答案,这也证明了非重复状态是合理的。 【参考方案1】:

你在这里:

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

    alert(highlightedNumber);
;

generateRandomNumber();

我理解你真正的问题——你不知道如何在浮点数之间得到一个随机数,对吧?对了,答案已经通过了。

要使用代码,just click here to jsFiddle。

更新

要获得小数的前四个数字,请使用.toFixed(3) 方法。我已经执行了一个示例here, on jsFiddle。

【讨论】:

感谢 JsFiddle。太好了。 是否可以四舍五入,只显示小数点后 3 位?我认为 .toFixed 会起作用,但它没有。 我知道了,我用highlightedNumber = (Math.random() * (max - min) + min).toFixed(4); 我更新了。 @编辑:哦,对不起。我没有看到接受的答案。 对于那些好奇的人,我计算了这个函数的标准差,以确保它具有“随机性”的均匀分布 - view the results。这些东西是interesting to me。【参考方案2】:

你可以使用

(Math.random() * (0.120 - 0.0200) + 0.0200).toFixed(4)

toFixed(n) 用于将数字转换为字符串,只保留“n”位小数。

希望对你有帮助^_^

【讨论】:

+1。对于那些好奇的人,我计算了这个函数的标准偏差,以确保它具有相等的“随机性”分布 - view the results。这类东西是interesting to me。 在那个东西周围扔一个 parseFloat( ) ,它对我来说是完美的。【参考方案3】:

如果您希望生成该随机数和其他随机数或其他东西,我建议您查看Chance 库。它提供了一个很好的抽象层,因此您不必摆弄 Math.random() 并编写自己的。

chance.floating(min: 0.02, max: 0.12);

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

此外,如果这是您需要生成的唯一随机事物,或者它是大小是真正问题的客户端,我建议您只使用上述建议之一。不值得几 Kb 几行就行了。

【讨论】:

不错的图书馆。感谢您的链接和工作;)

以上是关于获取 0.0200 到 0.120 之间的随机数(浮点数)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在javascript中获取400到480之间的随机数[重复]

JavaScript获取两个数之间的任意随机数

随机获取10个1-20之间的随机数,输出不重复的不能重复

List集合系列文章(九) - ArrayList实现获取10个1-20之间随机数,且不能重复

java获取随机数(java获取随机数整数)

生成 0 到 1 之间的随机浮点数