在两个十进制数之间生成一个随机数[重复]
Posted
技术标签:
【中文标题】在两个十进制数之间生成一个随机数[重复]【英文标题】:Generate a random number between two decimal numbers [duplicate] 【发布时间】:2019-10-18 21:57:51 【问题描述】:我必须生成一个介于 0.1 和 1.5 之间的随机数。 确切的命令可能是什么?
const random = +(Math.random() * ((1.5- 0.1) + 0.1)).toFixed(1);
console.log(random)
【问题讨论】:
@str 烦人,那是整数,而 OP 想要浮点数。不需要大的改变,但很烦人,我们没有足够通用的东西来轻松覆盖。 请描述您提出的解决方案有什么问题 【参考方案1】:如果您想要 0.1 步的随机数,最简单的方法是生成 1 到 15 之间的随机数,然后将结果除以 10。
(Math.floor(Math.random() * 15) + 1) / 10;
【讨论】:
【参考方案2】:Mah.random() * (max - min) + min
始终是您的最佳选择。如果您想稍后将其四舍五入为n
小数,只需将其包装成这样:Math.round(random * 10 ** n) / (10 ** n)
如果是一位小数,即Math.round(10 * (Math.random() * (max - min) + min)) / 10
【讨论】:
【参考方案3】:您可以将 15 的因子作为随机值,然后将除以 10 的整数值。
function getRandom()
return (Math.floor(Math.random() * 15) + 1) / 10;
var i = 1e6,
r,
d = ;
while (i--)
r = getRandom();
d[r] = (d[r] || 0) + 1;
console.log(d);
【讨论】:
以上是关于在两个十进制数之间生成一个随机数[重复]的主要内容,如果未能解决你的问题,请参考以下文章