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的access操作类
Apr 09 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
May 26 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
从PHP的源码中深入了解stdClass类
Apr 18 PHP
PHP写日志的实现方法
Nov 05 PHP
php实现的树形结构数据存取类实例
Nov 29 PHP
PHP实现QQ登录实例代码
Jan 14 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
Oct 11 PHP
php实现登陆模块功能示例
Oct 20 PHP
Yii2 批量插入、更新数据实例
Mar 15 PHP
PHP数据分析引擎计算余弦相似度算法示例
Aug 08 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绘图之在图片上写中文和英文的方法
2015/01/24 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
用cookies实现的可记忆的样式切换效果代码下载
2007/12/24 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
2012/12/04 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
JQuery操作元素的css样式
2015/03/09 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
2017/02/09 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
Element Popover 弹出框的使用示例
2020/07/26 Javascript
Python中return语句用法实例分析
2015/08/04 Python
python编码总结(编码类型、格式、转码)
2016/07/01 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
django中上传图片分页三级联动效果的实现代码
2019/08/30 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
德国自行车商店:Tretwerk
2019/06/21 全球购物
Python里面如何拷贝一个对象
2014/02/17 面试题
浅谈react路由传参的几种方式
2021/03/23 Javascript
创业计划书的主要内容有哪些
2014/01/29 职场文书
个人实习生的自我评价
2014/02/16 职场文书
体育系毕业生求职自荐信
2014/04/16 职场文书
公务员政审单位鉴定材料
2014/05/16 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
党的群众路线教育实践活动对照检查材料思想汇报(党员篇)
2014/09/25 职场文书
清明节寄语2015
2015/03/23 职场文书
《卖火柴的小女孩》教学反思
2016/02/19 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
python 模块重载的五种方法
2021/04/24 Python
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android