简单的金额小写转成读出来的大写
最近同事们一起讨论技术问题,偶然间说到这个功能。工作也不忙,就试着写一下。具体代码如下:
$num = '586480054.05';
$big_arr = ['9'=>'亿','8'=>'千万','7'=>'百万','6'=>'十万','5'=>'万','4'=>'千','3'=>'百','2'=>'拾','1'=>'元'];
$number_arr = ['1'=>'壹','2'=>'贰','3'=>'叁','4'=>'肆','5'=>'伍','6'=>'陆','7'=>'柒','8'=>'捌','9'=>'玖','0'=>'零'];if(strpos($num,'.')){$temp_num = explode('.',$num);$num_zheng = $temp_num[0];$num_ling = $temp_num[1];$str_num = '';if(!empty($num_zheng)){//转换整数$arr_zheng = str_split($num_zheng);for($i = count($arr_zheng);$i>0;$i--){if(!empty($str_num) && (substr($str_num,-3) == '万') && (strpos($big_arr[$i],'万')!==false)){//为了去除万位以上多余的万字。$str_num = substr($str_num,0,strlen($str_num)-3);}if(strpos($str_num,'零')&&empty($arr_zheng[count($arr_zheng)-$i])){//去除多余的零}else if(0 == $arr_zheng[count($arr_zheng)-$i]){//去除单位$str_num.=$number_arr[$arr_zheng[count($arr_zheng)-$i]];}else{$str_num.=$number_arr[$arr_zheng[count($arr_zheng)-$i]].$big_arr[$i];}}}if(!empty($num_ling)){//转换小数$arr_ling = str_split($num_ling);if(empty($str_num)&&empty($arr_ling[0])){$str_num.=$number_arr[$arr_ling[1]].'分';}else if(empty($arr_ling[0])){$str_num.=$number_arr[$arr_ling[0]].$number_arr[$arr_ling[1]].'分';}else {$str_num.=$number_arr[$arr_ling[0]].'角'.$number_arr[$arr_ling[1]].'分';}}
}else{$str_num = '';if(!empty($num)){$arr_zheng = str_split($num);for($i = count($arr_zheng);$i>0;$i--){if(!empty($str_num) && (substr($str_num,-3) == '万') && (strpos($big_arr[$i],'万')!==false)){$str_num = substr($str_num,0,strlen($str_num)-3);}if(strpos($str_num,'零')&&empty($arr_zheng[count($arr_zheng)-$i])){}else if(0 == $arr_zheng[count($arr_zheng)-$i]){$str_num.=$number_arr[$arr_zheng[count($arr_zheng)-$i]];}else{$str_num.=$number_arr[$arr_zheng[count($arr_zheng)-$i]].$big_arr[$i];}}}
}if(substr($str_num,-3) == '零'){$str_num = substr($str_num,0,strlen($str_num)-3);
}echo $str_num;
以上 输出的结果为:伍亿捌千陆百肆十捌万零伍拾肆元零伍分
(需要注意的一点,PHP5.6之前的默认编码都是ISO-8859-1,5.6之后的才是UTF8,UTF8模式下,一个中文字符占3个字节,而ISO-8859-1则是按照一个字节进行处理。)
简单的金额小写转成读出来的大写相关推荐
- 在Excel中将人民币金额小写转成大写(转)
在Excel中将人民币金额小写转成大写(转)[@more@] Excel中要将人民币小写金额转换成大写格式,将自定义格式类型中的"G/通用格式"改为"G/通用格式&quo ...
- Excel中将人民币金额小写转成大写(转)
Excel中将人民币金额小写转成大写(转) Excel中要将人民币小写金额转换成大写格式,将自定义格式类型中的"G/通用格式"改为"G/通用格式"元" ...
- PB 金额小写转换成大写
char ls_Char[] string ls_NChar[],ls_IUnit[],ls_DUnit[] string ls_umoney = '',ls_sUnit,ls_sChar,ls_sC ...
- win7计算机名改成大写,Win7系统下excel数字小写金额怎么转换成汉字大写金额
很多 第一种:设置单元格格式 在单元格中输入想要变成大写的数字之后,按Ctrl+1调出单元格格式设置对话框,在分类选择特殊类型为中文大写数字,最后再单击确定按钮即可看到自己原本的小写数字变成大写了: ...
- 小写数字转大写金额php,php 金额小写数字转大写汉字
//用途: 金额小写转大写 //范围: 万亿>= (-,-) >=分 //作者: 283879541 /* example: $test = new digit2chinese; $tes ...
- php大写转为小写,PHP 实现人民币小写转换成大写的方法及大小写转换函数
php 的 PHP 实现人民币小写转换成大写的方法及大小写转换函数 下面一段代码给大家分享php实现人民币大小写转换的方法,具体代码如下所示: header("charset=utf-8;& ...
- python做好的程序如何变成小程序-使用python编写简单的小程序编译成exe跑在win10上...
每天的工作其实很无聊,早知道应该去IT公司闯荡的.最近的工作内容是每逢一个整点,从早7点到晚11点,去查一次客流数据,整理到表格中,上交给素未蒙面的上线,由他呈交领导查阅. 人的精力毕竟是有限的,所以 ...
- php数字转英文,PHP金额数字转换成英文
PHP金额数字转换成英文 $numTable[40]="FORTY "; $numTable[50]="FIFTY "; $numTable[60]=" ...
- 《复杂》读书笔记(part1)--一些思想是由简单的思想组合而成,我称此为复杂
学习笔记 学习书目:<复杂>- 梅拉妮·米歇尔 文章目录 复杂是什么 复杂系统的共性 如何度量复杂性 复杂是什么 一些思想是由简单的思想组合而成,我称此为复杂:比如美.感激.人.军队.宇宙 ...
最新文章
- bzoj1266: [AHOI2006]上学路线route
- Docker Swarm集群config集中管理配置文件
- java8中-_java8中的Stream
- 【Java】基于注解开发初探
- a commit git 参数是什么意思_深入理解Git - 一切皆commit
- java velocity是什么意思_基于 Java 的模板引擎Velocity快速入门
- 一睹为快 | 施耐德电气全生命周期智能制造解决方案亮相线上工博
- 渲染标签文字(光晕效果)
- iOS开发之App间账号共享与SDK封装
- Android官方多渠道方案详解
- 面对10倍需求只用 40% 成本,这是一种怎样的体验?
- 操作系统实验报告fcfs算法c语言,操作系统实验报告 作业调度实验报告...
- c语言办公用品管理系统,恒达办公用品管理系统
- Web 端使用融云 SDK 集成实现滑动加载历史消息
- 《家财通》普及版序列号
- php 爬虫 执行js,使用PyV8在Python爬虫中执行js代码
- ubuntu下libfetion问题
- Oracle数据字典一致性鉴别
- android电子书App、自定义图表、仿腾讯漫画App、仿淘宝优惠券、3D选择容器等源码...
- matlab建立学生档案,matlab程序设计入门20PPT18档案读写 .pptx