【问题标题】: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 想要浮点数。不需要大的改变,但很烦人,我们没有足够通用的东西来轻松覆盖。
  • 请描述您提出的解决方案有什么问题

标签: javascript random


【解决方案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);

      【讨论】:

        猜你喜欢
        • 2014-03-20
        • 2014-12-19
        • 1970-01-01
        • 2014-04-17
        • 1970-01-01
        • 1970-01-01
        • 2011-07-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多