zoukankan      html  css  js  c++  java
  • php实现红包接口

    /**
         * 随机红包函数
         * @param $total 红包总金额
         * @param $num  红包个数
         * @return array
        */
        public function packet($total, $num) {
            $min        =   0.01;       //红包最小值
            $redPacket  =   [];         //初始化红包数组
            if ($total / $num == $min) {
                for ($i=1;$i<$num;$i++) {
                    $redPacket[$i] = (string)$min;
                }
                $redPacket[$num]   = (string)$min;
            }else {
                for ($i=1;$i<$num;$i++)
                {
                    $safe_total     =       ($total-($num-$i)*$min)/($num-$i);          //随机数安全上限
                    $money          =       @mt_rand($min*100,$safe_total*100)/100;      //红包值
                    if ($money < $min) {
                        $money = $min;
                    }
                    $total          -=      $money;
                    $redPacket[$i]  =       sprintf('%.2f', $money);
                }
                $redPacket[$num]    =       sprintf('%.2f', $total);
            }
            shuffle($redPacket);
    //        dump($redPacket);
            return $redPacket;
        }
    

      网上的发红包方法有一个bug,当红包数目为10,金额0.1是会报错,所以改了一些东西

  • 相关阅读:
    IDEA快捷方式
    JVM调优总结
    log4g详细配置
    大前端完整学习路线(详解)
    Tomcat工作原理
    Oracle
    Servlet知识
    lmap
    常见博客API
    PL/SQL入门理解(一)
  • 原文地址:https://www.cnblogs.com/mnhy/p/7826820.html
Copyright © 2011-2022 走看看