int remainSize;double remainMoney;}LeftMoneyPackage;//微信红包实现static double getRandomMoney(LeftMoneyPackage _leftMoneyPackage) {// remainSize 剩余的红包数量// remainMoney 剩余的钱if (_leftMoneyPackage.remainSize == 1) {_leftMoneyPackage.remainSize--;return (double) Math.round(_leftMoneyPackage.remainMoney * 100) / 100;}Random r = new Random();//动态分配空间,涉及了C++中的newdouble min = 0.01;double max = _leftMoneyPackage.remainMoney / _leftMoneyPackage.remainSize * 2;double money = r.nextDouble() * max;money = money <= min ? 0.01: money;money = Math.floor(money * 100) / 100;_leftMoneyPackage.remainSize--;_leftMoneyPackage.remainMoney -= money;return money;/////////////////////////////////////////////}
1 回答
![?](http://img1.sycdn.imooc.com/5333a1920001d36402200220-100-100.jpg)
绝地无双
TA贡献1946条经验 获得超4个赞
只是随机数有问题么?你试试这样写
Random r = new Random(); 改成 srand( (unsigned int)time(0) );
double money = r.nextDouble() * max; 改成 double money = ((rand()% ((int) (max*100)))/100.0);
- 1 回答
- 0 关注
- 130 浏览
添加回答
举报
0/150
提交
取消