最近同事们一起讨论技术问题,偶然间说到这个功能。工作也不忙,就试着写一下。具体代码如下:

$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则是按照一个字节进行处理。)

简单的金额小写转成读出来的大写相关推荐

  1. 在Excel中将人民币金额小写转成大写(转)

    在Excel中将人民币金额小写转成大写(转)[@more@] Excel中要将人民币小写金额转换成大写格式,将自定义格式类型中的"G/通用格式"改为"G/通用格式&quo ...

  2. Excel中将人民币金额小写转成大写(转)

    Excel中将人民币金额小写转成大写(转) Excel中要将人民币小写金额转换成大写格式,将自定义格式类型中的"G/通用格式"改为"G/通用格式"元" ...

  3. PB 金额小写转换成大写

    char ls_Char[] string ls_NChar[],ls_IUnit[],ls_DUnit[] string ls_umoney = '',ls_sUnit,ls_sChar,ls_sC ...

  4. win7计算机名改成大写,Win7系统下excel数字小写金额怎么转换成汉字大写金额

    很多 第一种:设置单元格格式 在单元格中输入想要变成大写的数字之后,按Ctrl+1调出单元格格式设置对话框,在分类选择特殊类型为中文大写数字,最后再单击确定按钮即可看到自己原本的小写数字变成大写了: ...

  5. 小写数字转大写金额php,php 金额小写数字转大写汉字

    //用途: 金额小写转大写 //范围: 万亿>= (-,-) >=分 //作者: 283879541 /* example: $test = new digit2chinese; $tes ...

  6. php大写转为小写,PHP 实现人民币小写转换成大写的方法及大小写转换函数

    php 的 PHP 实现人民币小写转换成大写的方法及大小写转换函数 下面一段代码给大家分享php实现人民币大小写转换的方法,具体代码如下所示: header("charset=utf-8;& ...

  7. python做好的程序如何变成小程序-使用python编写简单的小程序编译成exe跑在win10上...

    每天的工作其实很无聊,早知道应该去IT公司闯荡的.最近的工作内容是每逢一个整点,从早7点到晚11点,去查一次客流数据,整理到表格中,上交给素未蒙面的上线,由他呈交领导查阅. 人的精力毕竟是有限的,所以 ...

  8. php数字转英文,PHP金额数字转换成英文

    PHP金额数字转换成英文 $numTable[40]="FORTY "; $numTable[50]="FIFTY "; $numTable[60]=" ...

  9. 《复杂》读书笔记(part1)--一些思想是由简单的思想组合而成,我称此为复杂

    学习笔记 学习书目:<复杂>- 梅拉妮·米歇尔 文章目录 复杂是什么 复杂系统的共性 如何度量复杂性 复杂是什么 一些思想是由简单的思想组合而成,我称此为复杂:比如美.感激.人.军队.宇宙 ...

最新文章

  1. bzoj1266: [AHOI2006]上学路线route
  2. Docker Swarm集群config集中管理配置文件
  3. java8中-_java8中的Stream
  4. 【Java】基于注解开发初探
  5. a commit git 参数是什么意思_深入理解Git - 一切皆commit
  6. java velocity是什么意思_基于 Java 的模板引擎Velocity快速入门
  7. 一睹为快 | 施耐德电气全生命周期智能制造解决方案亮相线上工博
  8. 渲染标签文字(光晕效果)
  9. iOS开发之App间账号共享与SDK封装
  10. Android官方多渠道方案详解
  11. 面对10倍需求只用 40% 成本,这是一种怎样的体验?
  12. 操作系统实验报告fcfs算法c语言,操作系统实验报告 作业调度实验报告...
  13. c语言办公用品管理系统,恒达办公用品管理系统
  14. Web 端使用融云 SDK 集成实现滑动加载历史消息
  15. 《家财通》普及版序列号
  16. php 爬虫 执行js,使用PyV8在Python爬虫中执行js代码
  17. ubuntu下libfetion问题
  18. Oracle数据字典一致性鉴别
  19. android电子书App、自定义图表、仿腾讯漫画App、仿淘宝优惠券、3D选择容器等源码...
  20. matlab建立学生档案,matlab程序设计入门20PPT18档案读写 .pptx

热门文章

  1. 关于导入modul中的libs文件夹
  2. C# K-Means
  3. 上市首日市值超过福特汽车,Rivian能否成下一个“特斯拉”?
  4. 谷歌翻译 失效/无法使用方法
  5. JAR包混淆与加密处理
  6. 部编版是什么版本_什么叫做部编版?部编版和人教版的区别是什么?
  7. php for循环语句的几种用法分析
  8. 国内IT外企的工资水平
  9. evplay 翻录_翻录DVD并将其转换为ISO映像
  10. NSX-V 负载均衡之配置部署