博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js红包算法随机分配
阅读量:4462 次
发布时间:2019-06-08

本文共 1527 字,大约阅读时间需要 5 分钟。

先假设一个红包四个人分,红包就是关于钱,那么是不是要保留两位小数,保留两位小数的方法很多,我用的方法是toFixed(2);

代码如下:

function fenpei(qian){
//第一个人 var one = (0.01 + Math.random()*(qian-(0.01*3))).toFixed(2);//qian-(0.01*3),因为如果到一个人如果抢到的是9.99的话,剩余0.01是不是不够三个人分,所以要减去人数的最小钱数,让第一个人最多只能抢到9.97 console.log(one); //第二个人 var two = (0.01+Math.random()*((qian-one)-0.01*2)).toFixed(2); console.log(two);//第三个人 var three = (0.01+Math.random()*((qian-one-two)-0.01*2)).toFixed(2);console.log(three);//第四个人,用总钱数减去前面的就等于剩下的,为什么要加Number,因为是字符串所以要将他转为数字,如果你不转最后输出的结果为NaN var four =(qian- (Number(one)+Number(two)+Number(three))).toFixed(2); // console.log(Number(one)+Number(two)+Number(three));console.log(four);};fenpei(10);

为什么要加0.01,随机数出来是不是有可能0.0001或者更多的,四舍五入的话它就是0.00,所以这种情况是不是不能让他出现,所以就加上0.01,让他永远不会有四舍五入等于0.00的可能性。

运行结果:测试了20次

用sort排序取出最小值

function fenpei(qian){    // console.log(arr.sort());        var one = (0.01 + Math.random()*(qian-(0.80*3))).toFixed(2);        console.log(one);        var two = (0.01+Math.random()*((qian-one)-0.01*2)).toFixed(2);        console.log(two);        var three = (0.01+Math.random()*((qian-one-two)-0.01*2)).toFixed(2);        console.log(three);        var four =(qian- (Number(one)+Number(two)+Number(three))).toFixed(2);        console.log(four);        var money=[one,two,three,four];        money.sort(function(a,b){            return a-b;        })        var min=money.sort();        console.log(money.sort());        console.log(min[0]);};fenpei(10);

运行结果:

 

转载于:https://www.cnblogs.com/yek9520/p/6599601.html

你可能感兴趣的文章
题目15:这么多作业,似乎压力很大啊! 请看TED 的演讲, 谈谈你对压力的看法,以及怎么和别人合作, 帮助别人,把压力转化为动力,在互相帮助的环境中成长。...
查看>>
linux上安装Laravel
查看>>
C语言进阶——有符号与无符号02
查看>>
高速收录之利用赶集、百姓、58同城网实现外链
查看>>
NetBeans 使用远程Git库
查看>>
Python实践所遇问题记录
查看>>
leetcode 155
查看>>
浅谈java枚举类
查看>>
socket 网络编程
查看>>
教你如何查看一款App里面所包含的图片
查看>>
08-变量的命名
查看>>
OOA、OOD、OOP
查看>>
集合介绍
查看>>
TCPServer+BaseRequestHandler网络编程
查看>>
Mysql:查用的基本操作
查看>>
Spring(九):Spring配置Bean(二)自动装配的模式、Bean之间的关系
查看>>
java的几种对象(PO,VO,DAO,BO,POJO)解释
查看>>
线程学习oneday
查看>>
c数组
查看>>
base64编码-----------》struts2(token)利用BigInteger产生随机数
查看>>