对数字加千分号实现

匿名 (未验证) 提交于 2019-12-02 23:41:02

千分号能够快速的读出数值,所以在财务等数据统计中很常用

具体代码:

function num_format($num)     {         if (!is_numeric($num)) {             return false;         }         $num = explode('.', $num);//把整数和小数分开         $j = strlen($num[0]) % 3;//整数有多少位         $sl = substr($num[0], 0, $j);//前面不满三位的数取出来         $sr = substr($num[0], $j);//后面的满三位的数取出来         $rvalue = '';         $i = 0;         while ($i <= strlen($sr)) {             $rvalue = $rvalue . ',' . substr($sr, $i, 3);//三位三位取出再合并,按逗号隔开             $i = $i + 3;         }         $rvalue = $sl . $rvalue;         $rvalue = substr($rvalue, 0, strlen($rvalue) - 1);//去掉最后一个逗号         $rvalue = explode(',', $rvalue);//分解成数组         if ($rvalue[0] == 0) {             array_shift($rvalue);//如果第一个元素为0,删除第一个元素         }         $rv = $rvalue[0];//前面不满三位的数         for ($i = 1; $i < count($rvalue); $i++) {             $rv = $rv . ',' . $rvalue[$i];         }         if (!empty($num[1])) {             $rvalue = $rv . '.' . $num[1];//小数不为空,整数和小数合并         } else {             $rvalue = $rv;//小数为空,只有整数         }         return $rvalue;     }

其实在php函数中也有自带函数,语法:

number_format(number,decimals,decimalpoint,separator)

number必需。要格式化的数字。如果未设置其他参数,则数字会被格式化为不带小数点且以逗号(,)作为千位分隔符。

decimals可选。规定多少个小数。如果设置了该参数,则使用点号(.)作为小数点来格式化数字。

decimalpoint可选。规定用作小数点的字符串。

举例:

echo number_format('155251236987452');

输出:155,251,236,987,452

echo number_format('155251236987452',2);

输出:155,251,236,987,452.00

echo number_format('155251236987452',2,',','.');

输出:155.251.236.987.452,00

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!