php将金钱小写数字转为金钱大写的方法
2012-08-01 14:00
246 查看
做仓储管理系统的时候,本来以为php本身就有这样的函数,弄了半天原来没有,于是就上网找了找,还真找到了。也看了看,原理其实很简单!供大家参考。
张存超php技术博客
张存超php技术博客
function change_num($num) { $d = array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖'); $e = array('元','拾','佰','仟','万','拾万','佰万','仟万','亿','拾亿','佰亿','仟亿','万亿');$p = array('分','角'); $zheng='整'; //追加"整"字 $final = array(); //结果 $inwan=0; //是否有万 $inyi=0; //是否有亿 $len_pointdigit=0; //小数点后长度 $y=0; if($c = strpos($num, '.')) //有小数点,$c为小数点前有几位数 { $len_pointdigit = strlen($num)-strpos($num, '.')-1; // 判断小数点后有几位数 if($c>13) //简单的错误处理 { echo "数额太大,已经超出万亿."; die(); } elseif($len_pointdigit>2) //$len_pointdigit小数点后有几位 { echo "小数点后只支持2位."; die(); } } else //无小数点 { $c = strlen($num); $zheng = '整'; } for($i=0;$i<$c;$i++) //处理整数部分 { $bit_num = substr($num, $i, 1); //逐字读取 左->右 if($bit_num!=0 || substr($num, $i+1, 1)!=0) //当前是零 下一位还是零的话 就不显示 @$low2chinses = $low2chinses.$d[$bit_num]; if($bit_num || $i==$c-1) @$low2chinses = $low2chinses.$e[$c-$i-1]; } for($j=$len_pointdigit; $j>=1; $j--) //处理小数部分 { $point_num = substr($num, strlen($num)-$j, 1); //逐字读取 左->右 if($point_num != 0) @$low2chinses = $low2chinses.$d[$point_num].$p[$j-1]; //if(substr($num, strlen($num)-2, 1)==0 && substr($num, strlen($num)-1, 1)==0) //小数点后两位都是0 } $chinses = str_split($low2chinses,2); //字符串转换成数组 //print_r($chinses); for($x=sizeof($chinses)-1;$x>=0;$x--) //过滤无效的信息 { if($inwan==0&&$chinses[$x]==$e[4]) //过滤重复的"万" { $final[$y++] = $chinses[$x]; $inwan=1; } if($inyi==0&&$chinses[$x]==$e[8]) //过滤重复的"亿" { $final[$y++] = $chinses[$x]; $inyi=1; $inwan=0; } if($chinses[$x]!=$e[4]&&$chinses[$x]!=$e[8]) //进行整理,将最后的值赋予$final数组 $final[$y++] = $chinses[$x]; } $newstring=(array_reverse($final)); //$final为倒数组,$newstring为正常可以使用的数组 $nstring=join($newstring); //数组变成字符串 if(substr($num,-2,1)==0 && substr($num,-1)<>0) //判断原金额角位为0 ? 分位不为0 ? { $nstring=substr($nstring,0,(strlen($nstring)-4))."零".substr($nstring,-4,4); //这样加一个零字 } $fen="分"; $fj=substr_count($nstring, $fen); //如果没有查到分这个字 return $nstring=($fj==0)?$nstring.$zheng:$nstring; //就将"整"加到后面 }
相关文章推荐
- 输入一串字符串,运用输出方法计算其中大写 小写 数字 和其他字符的个数
- android Editext限制输入数字和字母以及将小写自动转换成大写的方法
- 可以一直接收键盘字符,并将大写转为小写,小写转为大写,数字不作处理
- php 金额小写数字转大写汉字
- jackson解析json字符串,首字母大写会自动转为小写的方法
- php将字符串全部转换成大写或者小写的方法
- PHP 实现人民币小写转换成大写的方法及大小写转换函数
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 可以一直接收键盘字符,并将大写转为小写,小写转为大写,数字不作处理
- Expression构建DataTable to Entity 映射委托 sqlserver 数据库里面金额类型为什么不建议用float,实例告诉你为什么不能。 sql server 多行数据合并成一列 C# 字符串大写转小写,小写转大写,数字保留,其他除外 从0开始用U盘制作启动盘装Windows10系统(联想R720笔记本)并永久激活方法 纯CSS打造淘宝导航菜单栏 C# Winform
- js实现小写数字转换为大写的方法
- PHP生成随机字符串,必须包含三项 大写小写数字
- php金钱显示小写转大写
- 写一个方法完成如下功能,判断从文本框textbox1输入的一个字符,如果是数字则求该数字的阶乘,如果是小写字条,则转换为大写,大写字符不变,结果在文本框textbox2中显示
- js将数字转换成大写金钱展示
- 金额 数字小写 自动翻译成中文大写
- PHP中实现数字金额到中文大写字符的转换
- 正则表达式匹配大写,小写,数字及特殊字符
- JSON(04)PHP的JSON处理函数及将MySQL结果集快速转为JSON的方法
- php 数字转大写人民币