php 把数字转换成汉字的代码


Posted in PHP onJuly 21, 2015

直接上实例,写到 千亿上了。

/**

* @author ja颂 
* 把数字1-1亿换成汉字表述,如:123->一百二十三
* @param [num] $num [数字]
* @return [string] [string]
*/
function numToWord($num)
{
$chiNum = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
$chiUni = array('','十', '百', '千', '万', '亿', '十', '百', '千');

$chiStr = '';

$num_str = (string)$num;

$count = strlen($num_str);
$last_flag = true; //上一个 是否为0
$zero_flag = true; //是否第一个
$temp_num = null; //临时数字

$chiStr = '';//拼接结果
if ($count == 2) {//两位数
$temp_num = $num_str[0];
$chiStr = $temp_num == 1 ? $chiUni[1] : $chiNum[$temp_num].$chiUni[1];
$temp_num = $num_str[1];
$chiStr .= $temp_num == 0 ? '' : $chiNum[$temp_num]; 
}else if($count > 2){
$index = 0;
for ($i=$count-1; $i >= 0 ; $i--) { 
$temp_num = $num_str[$i];
if ($temp_num == 0) {
if (!$zero_flag && !$last_flag ) {
$chiStr = $chiNum[$temp_num]. $chiStr;
$last_flag = true;
}
}else{
$chiStr = $chiNum[$temp_num].$chiUni[$index%9] .$chiStr;

$zero_flag = false;
$last_flag = false;
}
$index ++;
}
}else{
$chiStr = $chiNum[$num_str[0]]; 
}
return $chiStr;
}

$num = 150;
echo numToWord($num);

方法二:

<?php
 /**
* 数字转换为中文
* @param  string|integer|float  $num  目标数字
* @param  integer $mode 模式[true:金额(默认),false:普通数字表示]
* @param  boolean $sim 使用小写(默认)
* @return string
*/
 function number2chinese($num,$mode = true,$sim = true){
    if(!is_numeric($num)) return '含有非数字非小数点字符!';
    $char    = $sim ? array('零','一','二','三','四','五','六','七','八','九')
    : array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
    $unit    = $sim ? array('','十','百','千','','万','亿','兆')
    : array('','拾','佰','仟','','?','?|','兆');
    $retval  = $mode ? '元':'点';
    //小数部分
    if(strpos($num, '.')){
        list($num,$dec) = explode('.', $num);
        $dec = strval(round($dec,2));
        if($mode){
            $retval .= "{$char[$dec['0']]}角{$char[$dec['1']]}分";
        }else{
            for($i = 0,$c = strlen($dec);$i < $c;$i++) {
                $retval .= $char[$dec[$i]];
            }
        }
    }
    //整数部分
    $str = $mode ? strrev(intval($num)) : strrev($num);
    for($i = 0,$c = strlen($str);$i < $c;$i++) {
        $out[$i] = $char[$str[$i]];
        if($mode){
            $out[$i] .= $str[$i] != '0'? $unit[$i%4] : '';
                if($i>1 and $str[$i]+$str[$i-1] == 0){
                $out[$i] = '';
            }
                if($i%4 == 0){
                $out[$i] .= $unit[4+floor($i/4)];
            }
        }
    }
    $retval = join('',array_reverse($out)) . $retval;
    return $retval;
 }
 //实例调用=====================================================
$num = '0123648867.789';
echo $num,'<br>';
 //普通数字的汉字表示
echo '普通:',number2chinese($num,false),'';
echo '<br>';
 //金额汉字表示
echo '金额(简体):',number2chinese($num,true),'';
echo '<br>';
echo '金额(繁体):',number2chinese($num,true,false);

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
使用PHP制作新闻系统的思路
Oct 09 PHP
一个简单的PHP&amp;MYSQL留言板源码
Jul 19 PHP
探讨如何在PHP开启gzip页面压缩实例
Jun 09 PHP
php遍历文件夹所有文件子文件夹函数代码
Nov 27 PHP
php从csv文件读取数据并输出到网页的方法
Mar 14 PHP
php生成zip文件类实例
Apr 07 PHP
PHP中Trait及其应用详解
Feb 14 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
Jul 03 PHP
Django中的cookie与session操作实例代码
Aug 17 PHP
Laravel 批量更新多条数据的示例
Nov 27 PHP
php面向对象程序设计入门教程
Jun 22 PHP
通过Email发送PHP错误的方法
Jul 20 #PHP
php实现编辑和保存文件的方法
Jul 20 #PHP
php数组生成html下拉列表的方法
Jul 20 #PHP
php生成过去100年下拉列表的方法
Jul 20 #PHP
PHP基于文件存储实现缓存的方法
Jul 20 #PHP
详解PHP错误日志的获取方法
Jul 20 #PHP
php实现网站顶踩功能的完整前端代码
Jul 19 #PHP
You might like
怎样去阅读一份php源代码
2009/08/21 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
试用php中oci8扩展
2015/06/18 PHP
php二维码生成
2015/10/19 PHP
php 查找数组元素提高效率的方法详解
2017/05/05 PHP
PHP使用Nginx实现反向代理
2017/09/20 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
Ext javascript建立超链接,进行事件处理的实现方法
2009/03/22 Javascript
JS 显示当前日期与时间的代码
2010/03/24 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
jQuery基本选择器之标签名选择器
2016/09/03 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
用Python登录Gmail并发送Gmail邮件的教程
2015/04/17 Python
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
启动Atom并运行python文件的步骤
2018/11/09 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
2020/07/28 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
C有"按引用传递"吗
2016/09/06 面试题
入职担保书范文
2014/05/21 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
机械专业技术员求职信
2014/06/14 职场文书
地震捐款倡议书
2014/08/29 职场文书
师德师风自我评价范文
2014/09/11 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
营销计划书范文
2015/01/17 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript