文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JS如何获取指定范围内的随机数含小数

2022-12-03 22:35

关注

获取指定范围内的随机数含小数

 randomNum(maxNum, minNum, decimalNum) {
            // 获取指定范围内的随机数, decimalNum指小数保留多少位
            var max = 0,
                min = 0;
            minNum <= maxNum ? (min = minNum, max = maxNum) : (min = maxNum, max = minNum);
            switch (arguments.length) {
                case 1:
                    return Math.floor(Math.random() * (max + 1));
                    break;
                case 2:
                    return Math.floor(Math.random() * (max - min + 1) + min);
                    break;
                case 3:
                    return (Math.random() * (max - min) + min).toFixed(decimalNum);
                    break;
                default:
                    return Math.random();
                    break;
            }
        },

JS小技巧之随机数的生成

应用场景

日常生活中,抽奖环节或者选人环节对于一个范围内随机数选择的频率是很高的。

例如1~100之间的某个整数。

问题描述

JS中 Math 对象的 random() 方法是结果在 [0,1) 之间的且精确到小数点后很多位的小数。显然不太符合实际应用的需求。

<script>
    console.log(Math.random());
</script>

解决方法

其实只需要记住一个简单的公式并将其封装成函数,就能实现在任意数字范围内生成随机整数的需求。

不包含最大值 ,输入范围 [1.5,5.5),实际随机数范围 [2,5)

function getRandom(min,max) {
    min = Math.ceil(min);        // 确保当输入为小数时,仍能取范围内的整数
    max = Math.floor(max); 
    return Math.floor(Math.random() * (max - min)) + min;
 }
 console.log(getRandom(1.5,5.5));

包含最大值 ,输入范围 [10.5,20.5] ,实际随机数范围 [10,20]

function getRandom(min,max) {
    min = Math.ceil(min);        // 确保当输入为小数时,仍能取范围内的整数
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
console.log(getRandom(10.5,20.5));

猜数小案例

<script>
   function getRandom(min,max) {
        min = Math.ceil(min);        
        max = Math.floor(max); 
        return Math.floor(Math.random() * (max - min)) + min;
   }
 
   var flag = getRandom(1,10);
   console.log(flag);
 
   while(1){
       var number = prompt("请输入您所猜的数值范围(1-10)");
       if(number < flag) {
           alert("猜小了,请重新输入!");
       } else if(number > flag) {
           alert("猜大了,请重新输入!");
       }else {
           alert("猜对了,该随机数为:" + flag); 
           break;
       }
   }
</script>

 

 

 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯