在Javascript中生成一个介于2个值到2个小数点之间的随机数

在Javascript中生成一个介于2个值到2个小数点之间的随机数,javascript,random,Javascript,Random,我想生成一个1到10之间的随机数,最多2位小数 我现在用下面的这个来生成我的数字 var randomnum = Math.floor(Math.random() * (10.00 - 1.00 + 1.00)) + 1.00; 最后,我想知道如何生成如下数字: 1.66 5.86 8.34 格式为:var randomnum=然后是代码 旁注:我不记得以前为什么会生成这样的数字,但记得一些关于数学的事情。随机生成小数点后8位的数字 谢谢你的帮助!:) 附言:我看过很多关于等待对生成的数字进行

我想生成一个1到10之间的随机数,最多2位小数

我现在用下面的这个来生成我的数字

var randomnum = Math.floor(Math.random() * (10.00 - 1.00 + 1.00)) + 1.00;
最后,我想知道如何生成如下数字:

1.66

5.86

8.34

格式为:var randomnum=然后是代码

旁注:我不记得以前为什么会生成这样的数字,但记得一些关于数学的事情。随机生成小数点后8位的数字

谢谢你的帮助!:)

附言:我看过很多关于等待对生成的数字进行向下或向上取整的帖子,但还没有找到一篇想要直接生成它们的帖子


更新:我想要的是一个数值,而不是一个看起来像数字的字符串

将原始随机数乘以
10^decimalPlaces
,将其放低,然后除以
10^decimalPlaces
。例如:

floor(8.885729840652472 * 100) / 100  // 8.88
函数genRand(最小值、最大值、小数位数){
var rand=Math.random()*(max-min)+min;
无功功率=数学功率(10,小数位数);
返回数学楼层(兰德*功率)/功率;
}

对于(var i=0;i您非常接近,您不需要使用最小值和最大值这两个十进制数。让我们将最大值设为1000,最小值设为100,因此在完成数学计算后,您需要除以100:

var randomnum = Math.floor(Math.random() * (1000 - 100) + 100) / 100;
或者,如果您想使用小数:

var precision = 100; // 2 decimals
var randomnum = Math.floor(Math.random() * (10 * precision - 1 * precision) + 1 * precision) / (1*precision);

使用类型脚本/角度的更多方法示例:

getRandom(min: number, max: number) {
  return Math.random() * (max - min) + min;
}

console.log('inserting min and max values: ', this.getRandom(-10.0, -10.9).toPrecision(4));

获取介于-10.0和-10.9之间的随机值

您可以使用以下代码

var randomnum = (Math.random() * (10.00 - 1.00 + 1.00) + 1.00).toFixed(2);

根据上面的例子,从视觉上、数学上和功能上简化事情

function randomNumberGenerator(min = 0, max = 1, fractionDigits = 0, inclusive = true) {
  const precision = Math.pow(10, Math.max(fractionDigits, 0));
  const scaledMax = max * precision;
  const scaledMin = min * precision;
  const offset = inclusive ? 1 : 0;
  const num = Math.floor(Math.random() * (scaledMax - scaledMin + offset)) + scaledMin;

  return num / precision;
};
Math.max
可防止
fractionDigits


生成精确随机数的简单javascript示例:

函数genRand(最小值、最大值、小数位数){
返回(Math.random()*(max-min)+min.toFixed(decimalPlaces)*1;
}

log(genRand(-5,5,2));
这里还有另一种尚未提及的方法,它将生成一个介于1和9.99之间的随机数

(Math.random()*8+1+Math.random()).toFixed(2)


console.log((Math.random()*8+1+Math.random()).toFixed(2))
JavaScript中的数字具有它们所具有的精度;尝试将精度限制在小数点后两位没有多大意义。您可以生成介于1和1000之间的整数,然后将其除以100,但由于二进制浮点的性质,最终仍会产生一些“模糊”在值的小数部分。可能的重复项可以使用parseFloat转换。bog交易是什么?我提供的链接提供了创建随机小数的解决方案,这是您的要求。因此,您只需使用parseFloat()转换字符串。这就是你所要做的。我该怎么做?我的网站最好用这个,所以如果我想改变这个等式,谢谢你,“关上但不要雪茄”:是吗?var randomnum=Math.floor(Math.random()*(max-min)+min)/100;100是小数点后2位的精度。请参阅更新的帖子这很好,但是
genRand(2,4,1)
永远不会返回4.0。您需要根据
max
在末尾添加一个修饰符(如果max@thdoan是的,上限是排他性的。你能详细说明一下你如何使它具有包容性吗?clabe45,我正要提交我自己的解决方案,直到我遇到它,所以我要用它(为什么要重新发明轮子,对吗?:)@thdoan谢谢,但我不知道这与我的解决方案有什么不同,因为我认为不需要
Math.min
,不同之处在于我链接的是4.0:)。因此这将返回一个字符串。您可以使用
typeof
进行检查。要使其工作,请在其周围包装一个parseFloat(),使输出成为一个数字。