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基础学习小结
Apr 17 PHP
JS 网站性能优化笔记
May 24 PHP
Yii PHP Framework实用入门教程(详细介绍)
Jun 18 PHP
PHP分页效率终结版(推荐)
Jul 01 PHP
利用PHP函数计算中英文字符串长度的方法
Nov 11 PHP
smarty模板引擎之分配数据类型
Mar 30 PHP
php生成圆角图片的方法
Apr 07 PHP
php自定义hash函数实例
May 05 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
PHP实现微信图片上传到服务器的方法示例
Jun 29 PHP
在 PHP 和 Laravel 中使用 Traits的方法
Nov 13 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
Mar 09 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
腾讯微博提示missing parameter errorcode 102 错误的解决方法
2014/12/22 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
jQuery 学习入门篇附实例代码
2010/03/16 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
2016/08/05 Javascript
JS实现拖拽的方法分析
2016/12/20 Javascript
基于bootstrop常用类总结(推荐)
2017/09/11 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
JS实现横向轮播图(中级版)
2020/01/18 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
Python数据结构之Array用法实例
2014/10/09 Python
Python中的高级数据结构详解
2015/03/27 Python
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
Python中列表元素转为数字的方法分析
2016/06/14 Python
tensorflow实现softma识别MNIST
2018/03/12 Python
python使用turtle绘制分形树
2018/06/22 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
Python实现数字的格式化输出
2020/08/01 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
银行优秀员工事迹
2014/02/06 职场文书
政风行风整改方案
2014/10/25 职场文书
结婚老公保证书
2015/02/26 职场文书
实习班主任自我评价
2015/03/11 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers