我想使用math.random将数字设置在0.00-20.00之间,但似乎无法正常运行

时间:2018-12-18 20:26:21

标签: javascript

这是我的问题。我正在尝试获取介于0和20之间的随机数,同时包括0.00和20.00。我似乎无法弄清楚我必须要做些什么。到目前为止,这是我的代码。

以下是与我的问题有关的一行:

arrTemperaturer.push((Math.random() * (20)).toFixed(2));



这是上下文中的代码:

    arrTemperaturer=[];        
    function randomTemp(antDager){

     i=antDager;

         while(i>0){
             arrTemperaturer.push((Math.random() * (20)).toFixed(2));
             i--;
          }
    }

1 个答案:

答案 0 :(得分:0)

在javascript中,数字1010.00之间没有区别。只能使用字符串来区分。这就是toFixed()返回字符串的原因。通常,您应该尝试使用数字,直到需要显示它们为止,然后使用诸如toFixed()之类的数字将其转换为适当的数字字符串表示形式。

如果要生成精确到两位小数的0到20(含)之间的数字,可以查找0到2001之间的随机数,取Math.floor()将得到一个整数,然后除以100。

let arr = Array.from({length:10}, () => Math.floor(Math.random() * (2001))/100)
console.log(arr)

请理解,除非您转换为字符串,否则2.70之类的数字将不存在,而是2.7。实际上,没有太多理由要这样做。您可以只使用完整的浮点数并在最后进行转换。