zoukankan      html  css  js  c++  java
  • PHP数字格式化,每三位逗号分隔数字,可以保留小数

    在报价的时候为了给浏览者更清晰明确的数字,所以需要用到数字格式化,有两种方法,一种自己写函数,另一种当然是系统自带的,其实我更喜欢系统自带的。

    先来系统简单的:

    string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] ):

    示例代码

    echo number_format('169856420');

    输出结果将为:

    169,856,420

    示例代码

    echo number_format('1000000',2);

    输出结果

    1,000,000.00

    示例代码

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

    输出结果

    1.000.000,00

    再看写的函数:

    function num_format($num){
    
    	if (!is_numeric($num)) {
    		return false;
    	}
    
    	$num = explode('.', $num); // 把整数和小数分开
    	$rl = $num[1]; // 小数部分的值
    	$j = strlen($num[0]) % 3; // 整数有多少位
    	$sl = substr($num[0], 0, $j); // 前面不满三位的数取出来
    	$sr = substr($num[0], $j); // 后面的满三位的数取出来
    	$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($rl)) {
    		$rvalue = $rv . '.' . $rl; // 小数不为空,整数和小数合并
    	} else {
    		$rvalue = $rv; // 小数为空,只有整数
    	}
    
    	return $rvalue;
    }
  • 相关阅读:
    ARP攻击及原理
    用C#语言构造蜘蛛程序
    在C#中调用VC编写的dll库
    关于ToolBar和MDI背景的问题
    修改IP和Mac地址的另类方法
    C#调用C++编写的COM DLL
    ARP欺骗技术实现原理分析
    获取本机的MAC的方法
    常用的攻击软件源代码(c)
    c#产生验证图片
  • 原文地址:https://www.cnblogs.com/52php/p/5665425.html
Copyright © 2011-2022 走看看