切换风格

默认梦幻1 梦幻9 白云 简约黑色 花卉 简约米色 城市 粉色心情 雪山 绿野仙踪 伦敦 薰衣草 加州 星空
回复 0

72

主题

369

帖子

522万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5221595
PHP格式化金额逗号分隔数字[复制链接]
发表于 2020-1-8 10:16:52 | 显示全部楼层 |阅读模式
  1. /**
  2. * 格式化金额
  3. * @param  [type] $num [description]
  4. * @return [type]      [description]
  5. */
  6. function money_format($num)
  7. {
  8.     if (!is_numeric($num)) {
  9.         return false;
  10.     }
  11.     $rvalue = number_format($num,2);
  12.     $num = round($num, 2);
  13.     $rvalue = '';
  14.     $num = explode('.', $num);//把整数和小数分开
  15.     $rl = !isset($num['1']) ? '' : $num['1'];//小数部分的值
  16.     $j = strlen($num[0]) % 3;//整数有多少位
  17.     $sl = substr($num[0], 0, $j);//前面不满三位的数取出来
  18.     $sr = substr($num[0], $j);//后面的满三位的数取出来
  19.     $i = 0;
  20.     while ($i <= strlen($sr)) {
  21.         $rvalue = $rvalue . ',' . substr($sr, $i, 3);//三位三位取出再合并,按逗号隔开
  22.         $i = $i + 3;
  23.     }
  24.     $rvalue = $sl . $rvalue;
  25.     $rvalue = substr($rvalue, 0, strlen($rvalue) - 1);//去掉最后一个逗号
  26.     $rvalue = explode(',', $rvalue);//分解成数组
  27.     if ($rvalue[0] == 0 && $num[0] != 0) {
  28.         array_shift($rvalue);//如果第一个元素为0,删除第一个元素
  29.     }
  30.     $rv = $rvalue[0];//前面不满三位的数
  31.     for ($i = 1; $i < count($rvalue); $i++) {
  32.         $rv = $rv . ',' . $rvalue[$i];
  33.     }
  34.     if (!empty($rl)) {
  35.         $rvalue = $rv . '.' . $rl;//小数不为空,整数和小数合并
  36.     } else {
  37.         $rvalue = $rv;//小数为空,只有整数
  38.     }
  39.    
  40.     return $rvalue;
  41. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|Archiver|手机版|小黑屋|阿西里西官网论坛 ( 黔ICP备15005599号-4 )

GMT+8, 2020-8-4 04:36 , Processed in 0.057774 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2018 阿西里西论坛 html php TP5资源下载群②

返回顶部