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 图像函数大举例(非原创)
Jun 20 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
Jul 31 PHP
百度ping方法使用示例 自动ping百度
Jan 26 PHP
thinkphp的静态缓存用法分析
Nov 29 PHP
PHP借助phpmailer发送邮件
May 11 PHP
Zend Framework框架实现类似Google搜索分页效果
Nov 25 PHP
thinkphp下MySQL数据库读写分离代码剖析
Apr 18 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
Mar 12 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 PHP
PDO::setAttribute讲解
Jan 29 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 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和ACCESS写聊天室(十)
2006/10/09 PHP
php 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
js 利用image对象实现图片的预加载提高访问速度
2013/03/29 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
2017/01/06 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
详解vue 组件之间使用eventbus传值
2017/10/25 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
详解Vue之事件处理
2020/07/10 Javascript
vue中如何添加百度统计代码
2020/12/19 Vue.js
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
PHP webshell检查工具 python实现代码
2009/09/15 Python
python制作最美应用的爬虫
2015/10/28 Python
python字符串,数值计算
2016/10/05 Python
Python探索之ModelForm代码详解
2017/10/26 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
世界上最大的在线汽车租赁预订平台:Rentalcars.com(支持中文)
2018/10/12 全球购物
体育教师个人的自我评价
2014/02/16 职场文书
如何撰写一封出色的求职信
2014/04/27 职场文书
项目建议书范文
2014/05/12 职场文书
会计专业应届生自荐信
2014/06/28 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
九年级化学教学反思
2016/02/22 职场文书
会议主持词通用版
2019/04/02 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
Python学习之时间包使用教程详解
2022/03/21 Python
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏