使用random产生[n, m)范围内随机数时,无法产生n+效果的问题

JS中一般使用math的函数方法生成随机数,常用到的方法有4个,

注:图片来源菜鸟教程,网址:https://www.runoob.com/w3cnote/js-random.html

如果我们希望获得一个[n, m)范围内的随机数,我们一般会写如下代码:

var value = Math.round(Math.random() * (m - n) + n);

这样我们就能获取到一个范围在[n, m)内的随机数。

遇到的问题 ---- 结果为字符串

代码如下:

<html>
分贝随机下限(DB):<input type="text" id="downLimit"><br>
分贝随机上限(DB):<input type="text" id="upLimit"><br>
分贝值:<output type="text" id="DB"></output><br>
</html>

<script>
var dbLimit = new Array();
dbLimit[0] = document.getElementById("downLimit").value;
dbLimit[1] = document.getElementById("upLimit").value;
var DB = Math.round(dbLimit[0]+Math.random()*(dbLimit[1]-dbLimit[0])); document.getElementById("DB").innerHTML = DB; </script>

 这里我希望使用获取的input值作为随机数的上下限,显示结果为:

输入:

  下限:33

  上限:55

输出:

  第一次:3310

  第二次:3320

  第三次:3315

从上面可以看出,这个结果是一个字符串连接的结果,恍然发现value函数获取的值是一个字符串类型。如此只需要将字符串转换为数值就好。js提供了几个类型转换函数,

  parseInt函数:将字符串转换为整数

  parseFloat函数:将字符串转换为浮点型。

调用以上两个函数完成“String---->Number”的转换,上述问题解决。

总结

1、value()返回类型为字符串型。

2、可以使用parseInt函数将字符串转换为整型。

猜你喜欢

转载自www.cnblogs.com/smile-lankit/p/13186458.html