600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 一个小玩意 PHP实现微信红包金额拆分试玩

一个小玩意 PHP实现微信红包金额拆分试玩

时间:2021-12-08 22:19:38

相关推荐

一个小玩意 PHP实现微信红包金额拆分试玩

<meta charset="utf-8"><?php// 新年红包金额拆分试玩class CBonus{public $bonus;//红包public $bonus_num;//红包个数public $bonus_money;//红包总金额public $money_single_max;//单个红包限额public function __construct(){$this->bonus_num = 10;$this->bonus_money = 200;$this->money_single_max = 60;}private function randomFloat($min = 0, $max = 1) {$mt_rand = mt_rand();$mt_getrandmax = mt_getrandmax();echo 'mt_rand=' . $mt_rand . ', mt_getrandmax=' . $mt_getrandmax . '<hr/>';return $min + $mt_rand / $mt_getrandmax * ($max - $min);}//计算public function compute(){$this->bonus = array();$bonus_money_temp = $this->bonus_money;$money_single_max = $this->money_single_max;$i = 1;while($i < $this->bonus_num){if ($money_single_max > $bonus_money_temp){$money_single_max = floatval(sprintf("%01.2f", $bonus_money_temp / 2));//剩余金额不够分时,把剩余金额的一半作为备用金 }$bonus_money_rad = $this->randomFloat(0.01, $money_single_max);//一个红包随机金额最小的1分钱$bonus_money_rad = floatval(sprintf("%01.2f", $bonus_money_rad));$bonus_money_temp = $bonus_money_temp - $bonus_money_rad ;//待分配的总剩余金额$bonus_money_temp = floatval(sprintf("%01.2f", $bonus_money_temp));$this->bonus[] = $bonus_money_rad;//echo $bonus_money_rad . ',' . $bonus_money_temp . '<hr/>';$i++;}$this->bonus[] = $bonus_money_temp;//分配剩余金额给最后一个红包 }//打印public function output(){$total = 0;foreach($this->bonus as $k => $v){echo '红包' . ($k+1) . '=' . $v . '<br/>';$total += $v;}echo '红包总金额:'.$total;}}$CBonus = new CBonus();$CBonus->compute();$CBonus->output();?>

演示结果:

红包1=12.36

红包2=24.37

红包3=42.71

红包4=36.92

红包5=25.84

红包6=23.17

红包7=15.92

红包8=1.35

红包9=7.75

红包10=9.61

红包总金额:200

红包1=24.59

红包2=17.66

红包3=29.67

红包4=32.34

红包5=12.67

红包6=37.15

红包7=17.41

红包8=15.23

红包9=6.13

红包10=7.15

红包总金额:200

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。