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 FPDF类库应用实现代码
Mar 20 PHP
is_uploaded_file函数引发的不能上传文件问题
Oct 29 PHP
php+memcache实现的网站在线人数统计代码
Jul 04 PHP
QQ互联一键登录审核不通过的解决方案
Sep 10 PHP
php中mysql连接方式PDO使用详解
Feb 25 PHP
Twig模板引擎用法入门教程
Jan 20 PHP
php编程每天必学之验证码
Mar 03 PHP
php生成验证码,缩略图及水印图的类分享
Apr 07 PHP
PHP设计模式之迭代器模式
Jun 17 PHP
简单的自定义php模板引擎
Aug 26 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
php + ajax 实现的写入数据库操作简单示例
May 16 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一些十分严重的缺陷详解
2013/06/03 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
基于JavaScript 声明全局变量的三种方式详解
2013/05/07 Javascript
JavaScript中对循环语句的优化技巧深入探讨
2014/06/06 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
[01:04:49]KG vs LGD 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
linux下安装easy_install的方法
2013/02/10 Python
python实现统计代码行数的方法
2015/05/22 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
Python3实现建造者模式的示例代码
2020/06/28 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
夜大自我鉴定
2013/10/31 职场文书
工商管理专业职业生涯规划
2014/01/01 职场文书
工艺技术员岗位职责
2015/02/04 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
甲午大海战观后感
2015/06/02 职场文书
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS