PHP开发小技巧①⑨—实现将数字转换为大写金额计数

原创 2018年01月29日 10:43:35

在我们开发项目过程中,有时会遇到这种情况:当我们在写支付账单的时候需要填写数字金额的大写,有的时候还真的写不出来,这个时候用百度也听尴尬的,特地写了这个方法,可以经常使用,进行直接转换。


代码实现如下:

<?php
/**
 * =======================================
 * Created by ZHIHUA·WEI.
 * Author: ZHIHUA·WEI
 * Date: 2018/1/29
 * Time: 10:10
 * Project: PHP开发小技巧
 * Power: 实现将数字转换为大写金额计数
 * =======================================
 */

/**
 * 函数:将数字转换为大写金额
 * @param $number int 输入的数字
 * @return string
 */
header("Content-type:text/html;charset=utf-8");
function NumberTransformCny($number)
{
    //定义数字大写、人名币单位、数字单位
    static $NumbersUp = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"),
    $CnyUnits = array("圆", "角", "分"),
    $NumUnits = array("拾", "佰", "仟", "万", "拾", "佰", "仟", "亿");
    //将数字按小数点分开
    //num1为整数部分,num2为小数部分
    list($num1, $num2) = explode(".", $number, 2);
    //将小数点后两位分开,此时num2为数组
    $num2 = array_filter(array($num2[1], $num2[0]));
    //将整数部分进行转换
    $ret = array_merge($num2, array(implode("", _Cny_Map_Unit(str_split($num1), $NumUnits)), ""));
    $ret = implode("", array_reverse(_Cny_Map_Unit($ret, $CnyUnits)));
    return str_replace(array_keys($NumbersUp), $NumbersUp, $ret);
}

/**
 * 函数:将整数转换成带单位字符串
 * @param $list array 数字数组
 * @param $units array 单位数组
 * @return array
 */
function _Cny_Map_Unit($list, $units)
{
    $u_num = count($units);
    $ret = array();
    foreach (array_reverse($list) as $item) {
        $num = count($ret);
        if ($item != "0" || !($num % 4))
            $n = ($item == '0' ? '' : $item) . ($units[($num - 1) % $u_num]);
        else
            $n = is_numeric($ret[0][0]) ? $item : '';
        array_unshift($ret, $n);
    }
    return $ret;
}

$number = 12345678.19;
var_dump(NumberTransformCny($number));

//打印结果:壹仟贰佰叁拾肆万伍仟陆佰柒拾捌圆壹角玖分


版权声明:转载时请标注http://blog.csdn.net/zhihua_w

PHP人民币金额数字转中文大写的函数

PHP人民币金额数字转中文大写的函数代码如下:
  • qq_26291823
  • qq_26291823
  • 2016年07月16日 13:41
  • 1381

PHP开发小技巧①⑨—实现将数字转换为大写金额计数

在我们开发项目过程中,有时会遇到这种情况:当我们在写支付账单的时候需要填写数字金额的大写,有的时候还真的写不出来,这个时候用百度也听尴尬的,特地写了这个方法,可以经常使用,进行直接转换。 代码实现...
  • Zhihua_W
  • Zhihua_W
  • 2018年01月29日 10:43
  • 82

阿拉伯数字转化为中文(php最基础的东西)

话不多说,直接上代码   function chinanum($num){ $china=array('零','一','二','三','四','五','六','七','八','九'); $ar...
  • u010674395
  • u010674395
  • 2015年04月27日 21:51
  • 2443

js将数字金额转换为大写人民币

今天换算律师打官司金额,用到了小写金额转化为大写汉字的问题,这里把具体思路分析一下 1、首先判断输入数值正负问题,     2、其次有小数点部分需要处理,将数值每次乘以10进行拆分,乘10——%...
  • qq_35240823
  • qq_35240823
  • 2017年11月23日 19:43
  • 163

用PHP实现小写金额转换大写金额【精确到分】

/** *数字金额转换成中文大写金额的函数 *String Int $num 要转换的小写数字或小写字符串 *return 大写字母 *小数位为两位 **/ function get_...
  • jucrazy
  • jucrazy
  • 2012年01月03日 21:09
  • 4433

阿拉伯数字与中文数字的相互转换

汉字用零一二三四五六七八九作为基本计数,与阿拉伯数字靠数字偏移位置不一样。 中文数字是 “数字+权位”的方式组成数字,比如百,千,万。 中文数字每个数字后都会跟上一个权位,权位就是数字的量值,相当...
  • qq_36391075
  • qq_36391075
  • 2017年08月15日 23:28
  • 90

php 科学计数法转化正常数值输出 解决方案

php 科学计数法转化正常数值输出 解决方案
  • zyp1234567890
  • zyp1234567890
  • 2016年03月09日 14:20
  • 5493

C#实现的【阿拉伯数字转换成中文大写金额】代码(原创)

以下C#代码实现了将阿拉伯数字转换成中文大写金额的功能,并Visual Studio.NET 2003 下调试基本通过(未经严格测试,希望各位发现错误后与作者联系fanz2000@sohu.com,或...
  • fanz2000
  • fanz2000
  • 2004年08月14日 12:14
  • 4372

关于php数字转大写人民币的代码(完善)

之前看到一个php版本的把数字变为大写人民币的代码,以前没有打开error_display,后来为了提高代码质量,把它打开了,发现了几处错误,看着很不爽,现在在一个系统里面应用了,部署到生产环境,发现...
  • lwprain
  • lwprain
  • 2016年03月01日 16:17
  • 690

一个php下的人民币小写转大写的代码

在网上找到的一个人民币转大写的代码,很多人都转的这个,但是测试后发现代码有报错,简单修改后终于不报错了。 ...
  • cnsyjsj
  • cnsyjsj
  • 2017年02月03日 18:56
  • 475
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP开发小技巧①⑨—实现将数字转换为大写金额计数
举报原因:
原因补充:

(最多只允许输入30个字)