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 缓存函数代码
Aug 27 PHP
两个开源的Php输出Excel文件类
Feb 08 PHP
php 获取本机外网/公网IP的代码
May 09 PHP
PHP中文件缓存转内存缓存的方法
Dec 06 PHP
Linux下CoreSeek及PHP扩展模块的安装
Sep 23 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
Jul 28 PHP
dedecms中使用php语句指南
Nov 13 PHP
php简单统计字符串单词数量的方法
Jun 19 PHP
PHP面向对象之事务脚本模式(详解)
Jun 07 PHP
php创建类并调用的实例方法
Sep 25 PHP
基于laravel Request的所有方法详解
Sep 29 PHP
laravel orm 关联条件查询代码
Oct 21 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语法(4)
2006/10/09 PHP
PHP数组实例总结与说明
2011/08/23 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
JS 遮照层实现代码
2010/03/31 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
2011/08/23 Javascript
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
Angular排序实例详解
2017/06/28 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
Python实现识别手写数字 Python图片读入与处理
2020/03/23 Python
详解Django中间件执行顺序
2018/07/16 Python
python图像处理模块Pillow的学习详解
2019/10/09 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
墨西哥网上超市:Superama
2018/07/10 全球购物
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
财务部岗位职责
2013/11/19 职场文书
就业自荐书
2013/12/05 职场文书
办理信用卡工作证明
2014/09/30 职场文书
2014年图书室工作总结
2014/12/09 职场文书
2015年党员承诺书
2015/01/21 职场文书
新员工入职感想
2015/08/07 职场文书
清洁工工作总结
2015/08/11 职场文书
一行代码python实现文件共享服务器
2021/04/22 Python
详解Flask开发技巧之异常处理
2021/06/15 Python