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仿ZOL分页类代码
Oct 02 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
Mar 21 PHP
php gzip压缩输出的实现方法
Apr 27 PHP
php实现按文件名搜索文件的远程文件查找器
May 10 PHP
让ThinkPHP支持大小写url地址访问的方法
Oct 31 PHP
PHP把MSSQL数据导入到MYSQL的方法
Dec 27 PHP
php cli配置文件问题分析
Oct 15 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
Jan 18 PHP
PHP5.3新特性小结
Feb 14 PHP
php框架CodeIgniter使用redis的方法分析
Apr 13 PHP
php使用环形链表解决约瑟夫问题完整示例
Aug 07 PHP
Laravel修改验证提示信息为中文的示例
Oct 23 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的FTP学习(一)
2006/10/09 PHP
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
深入PHP FTP类的详解
2013/06/13 PHP
php一维二维数组键排序方法实例总结
2014/11/13 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
Javascript !!的作用
2008/12/04 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
Python 文件操作技巧(File operation) 实例代码分析
2008/08/11 Python
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
python安装以及IDE的配置教程
2015/04/29 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
Python正则捕获操作示例
2017/08/19 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
美体小铺英国官网:The Body Shop英国
2017/01/24 全球购物
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
女方回门宴答谢词
2014/01/14 职场文书
鲜果饮品店创业计划书
2014/01/21 职场文书
《秋游》教学反思
2014/04/24 职场文书
公司开业庆典策划方案
2014/06/04 职场文书
校庆活动策划方案
2014/06/05 职场文书
青岛导游词
2015/02/12 职场文书
五一晚会主持词
2015/07/01 职场文书
儿子满月酒致辞
2015/07/29 职场文书
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB