php实现将人民币金额转大写的办法
class Num2Cny{
static $basical=array(0=>'零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
static $advanced=array(1=>'拾','佰','仟');
public static function ParseNumber($number){
$number=trim($number);
if(!is_numeric($number)||intval($number)>999999999999) return 'error';
if($number==0) return '零';
if(strpos($number,'.')){
$number=round($number,2);
$data=explode('.',$number);
$data[0]=self::int($data[0]);
$data[1]=self::dec($data[1]);
return $data[0].$data[1];
}else{
return self::int($number).'整';
}
}
public static function int($number){
$arr=array_reverse(str_split($number));
$data='';
$zero=false;
$zero_num=0;
foreach($arr as $k=>$v){
$_chinese='';
$zero=($v==0)?true:false;
$x=$k%4;
if($x && $zero && $zero_num>1)continue;
switch($x){
case 0:
if($zero){
$zero_num=0;
}else{
$_chinese=self::$basical[$v];
$zero_num=1;
}
if($k==8){
$_chinese.='亿';
}elseif($k==4){
$_chinese.='万';
}
break;
default:
if($zero){
if($zero_num==1){
$_chinese=self::$basical[$v];
$zero_num++;
}
}else{
$_chinese=self::$basical[$v];
$_chinese.=self::$advanced[$x];
}
}
$data=$_chinese.$data;
}
return $data.'元';
}
public static function dec($number){
if(strlen($number)<2) $number.='0';
$arr=array_reverse(str_split($number));
$data='';
$zero_num=false;
foreach($arr as $k=>$v){
$zero=($v==0)?true:false;
$_chinese='';
if($k==0){
if(!$zero){
$_chinese=self::$basical[$v];
$_chinese.='分';
$zero_num=true;
}
}else{
if($zero){
if($zero_num){
$_chinese=self::$basical[$v];
}
}else{
$_chinese=self::$basical[$v];
$_chinese.='角';
}
}
$data=$_chinese.$data;
}
return $data;
}
}
使用过程也很简单,如下:
查看代码
打印
1 echo Num2Cny::ParseNumber(1234567.5);
结果将输出:
壹佰贰拾叁万肆仟伍佰陆拾柒元伍角
转自:http://www.phpernote.com/php-function/861.html
php实现将人民币金额转大写的办法的更多相关文章
- js将人民币金额转换为大写
function upDigit(n) { var fraction = ['角', '分']; var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒' ...
- 【转载】C#工具类:人民币金额转换为中文大写
在涉及到金融业务这一块的系统设计中,时常能够遇到的情况是需要将阿拉伯数字的人民币金额自动转换为中文的大写金额.现在互联网上也有很多网站提供此类服务,只要你输入人民币的阿拉伯数字金额,输入后自动给你转换 ...
- C#小写数字金额转换成大写人民币金额的算法
C#小写数字金额转换成大写人民币金额的算法 第一种方法: using System.Text.RegularExpressions;//首先引入命名空间 private string DaXie(st ...
- Python TIPS上一道关于人民币金额小写转大写的题
人民币金额打印 题目链接:here.我发现我写的好复杂,但万幸编码还算符合人类,看了其他答案,感觉都是天书. #!/usr/bin/env python # -*- coding: utf-8 -*- ...
- BPM实例分享——金额规则大写
金额规则大写 在涉及金额的流程中经常会遇到需要大写金额数据与小写金额匹配,如何实现输入数字后自动转换呢? 初级用法: 1.在默认表单基本属性javascript 中增加如下金额转换方法 /** 数字金 ...
- H3BPM实例分享——金额规则大写
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- php人民币小写转大写函数,不限长度,精确到分
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://ustb80.blog.51cto.com/6139482/1035327 在打印 ...
- C#:小写金额转换为大写
#region 小写金额转换为大写 public static string CurrToChnNum(double Currnum) { string sResult = ""; ...
- .net 金额中文大写 日期转中文
金额中文大写 #region 中文大写 /// <summary> /// 返回中文数字 ,如壹佰元整 /// </summary> /// <param name=&q ...
随机推荐
- 最简单的动态代理实例(spring基于接口代理的AOP原理)
JDK的动态代理是基于接口的 package com.open.aop; public interface BusinessInterface { public void processBus ...
- 【距离GDOI:136天】 后缀数组中...
当时后缀数组没有好好学...各种应用都没学,这两天好好补,要把罗神的论文好好研究一遍...其实后缀数组真的好神奇!!特别是那个萌萌的height数组! 今天终于能有两节完整的晚自修了QAQ...明晚还 ...
- 3984: 玩具(toy)
3984: 玩具(toy) 题目描述 这个故事发生在很久以前,在 IcePrincess_1968 和 IcePrince_1968 都还在上幼儿园的时候. IcePrince_1968 最近迷上了一 ...
- system权限无法访问外挂SD卡
总结Android应用system权限无法访问SD卡问题 包括android1.6 解决方案http://hi.baidu.com/yunlongchn/item/7d6636d8547317ffca ...
- 物理的alpha blend
alpha blend主要是可以用来模拟半透明的笔触..然而它是有缺陷的.. 因为一般的alpha blend的(线性混合)模型没有考虑反射光的问题..然而其实反射光是很重要的大家都知道.. 好..如 ...
- SPOJ QTREE Query on a tree VI
You are given a tree (an acyclic undirected connected graph) with n nodes. The tree nodes are number ...
- Linux Mint---安装篇
先前接触过Debian6,埋头折腾已经是好几年前的事情了,后来就放下了,现在工作之余时间比较多,正好debian8.1出来了,于是乎装了个debian用,结果,自己其实还是一个菜蛋而已,连软件源怎么设 ...
- linux的进程管理
进程就是正在运行的程序. 一个程序可以对应多个进程,但是一个进程只对应一个程序. 1.进程和进程控制的概念 查看进程状态: w+用户名 查看个别用户的进程 ps -aux 显示系统进程 a:代表 ...
- 从无序序列中求这个序列排序后邻点间最大差值的O(n)算法
标题可能比较绕口,简单点说就是给你一个无序数列A={a1,a2,a3……an},如果你把这个序列排序后变成序列B,求序列B中相邻两个元素之间相差数值的最大值. 注意:序列A的元素的大小在[1,2^31 ...
- Scrapy学习-22-扩展开发
开发scrapy扩展 定义 扩展框架提供一个机制,使得你能将自定义功能绑定到Scrapy. 扩展只是正常的类,它们在Scrapy启动时被实例化.初始化 注意 实际上自定义扩展和spider中间件. ...