如题,工作中遇到了这个问题,要将金额数字转换成人民币大写的情况,以下是代码:

 //  将数值金额转换为中文大写金额public function amount_rmb($amount){$amount = abs($amount);// 预定义中文转换的数组$digital = array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');// 预定义单位转换的数组$position = array('仟','佰','拾','亿','仟','佰','拾','万','仟','佰','拾','元');$decimal_position = array('角','分','厘','毫');// 将金额的数值字符串根据小数点拆分成数组$amount_arr = explode('.',$amount);$integer = isset($amount_arr[0]) ? trim($amount_arr[0]) : 0;//  小数点前面的整数$decimal = isset($amount_arr[1]) ? trim($amount_arr[1]) : 0;//  小数点后面的小数$result = '人民币';//  首先处理整数if(strlen($integer) > 12){return "不支持万亿及更高金额";}// 将整数位的数值字符串拆分成数组$integer_arr = str_split($integer,1);// 将整数部分替换成大写汉字$integer_arr_len = count($integer_arr);$position_len = count($position);for($i=0;$i<$integer_arr_len;$i++){$result .= $digital[$integer_arr[$i]].$position[$position_len - $integer_arr_len + $i];}// 如果小数位也要转换if(isset($decimal) && !empty($decimal)){if(strlen($decimal) > 2){return "不支持分及以下的单位";}// 将小数位的数值字符串拆分成数组$decimal_arr = str_split($decimal,1);// 将小数部分替换成大写汉字$decimal_arr_len = count($decimal_arr);for($j=0;$j<$decimal_arr_len;$j++){$result .= $digital[$decimal_arr[$j]].$decimal_position[$j];}}else{$result .= '整';}return $result;}

此处转换的金额有着对应的限制,小数点前面的数值不可以超过万亿,小数点后面最小单位为分。如果有其他的需求可进行后续的调整。
另外,如果要转换的数值中间有多个‘0’,这个函数转换出来的大写人民币金额会出现多个“零”。结果如下图:

如果需要去除零的重复输出,需要换一种方法,待后续完善

金额转换成人民币大写相关推荐

  1. 把数字金额转换成人民币大写[原创]

    最近在用这个博客,感觉博客园不错,以前用的是新浪的,感觉这个更好,所以好多东西现在转到这边来了. 下面是一个数字转人民币大写的类,不啰嗦了,下面是代码:  1    /**/ /// <summ ...

  2. 关于数字转换成人民币大写的问题

    我们在参与大型项目时,难免会遇到数值转换人民币大写的情况.因为我今天接触了一个这样的转换,但原代码存在BUG,转换经常出现问题.于是我就去网上搜索了相关资源.由于没有找到相对权威的转换代码,网上给出的 ...

  3. 如何把数字金额转换成中文大写

    问题:要求把万亿级别内的浮点数转换成中文大写,例如把数字1112221000060.254400转换成:壹万壹仟壹佰贰拾贰亿贰仟壹佰万零陆拾元零贰角伍分 分析:关键是先把double类型转换成char ...

  4. 把数字金额转换成中文大写数字

    //把数字金额转换成中文大写数字 function changeNumMoneyToChinese(money) { var cnNums = new Array("零", &qu ...

  5. 数值转换成人民币大写的一个类

    网上有许多将数值转换成人民币大写的代码,其中有不少写得很好的.昨天在Csdn上浏览,觉得这个比较简洁,但也有几点小Bug,稍加整理,觉得仍然与财务表达方式有不一致的地方,故先贴上来,请大家看看. pu ...

  6. 数字转换成人民币大写格式(带界面)

    今天看了算法的公开课,有一个把数字转换成人民币大写的算法. 后面就想着自己写一个界面的,好几天没有写一个完整的程序的. 当然有一些BUG,没有时间优化,后面在慢慢优化. 自己的名言:每天努力一点儿,总 ...

  7. 阿拉伯数字小写金额转换成中文大写金C额程序说明

    阿拉伯数字小写金额转换成中文大写金额C程序说明 1.问题的提出 寒假帮同学交缴话费时,不经意间看到收据上同时有小写金额和大写金额,想想各种各样的票据诸如缴费收据.银行业务回单.商场销售凭证.专用发票等 ...

  8. java数字金额转换成汉字大写

    java数字转换成汉字大写.数字转发票上的人民币大写 1.调用方法 NumToCN.number2CNMontrayUnit(zjJE): 2.转换类 import java.math.BigDeci ...

  9. php数字转换百千万,PHP数字金额转换成中文大写显示

    整个功能其实不难,只是还算挺实用,所以记一下哈,其他编程语言转换一下也是能可以的! 思路:把传过来的金额转换成整数和小数两部分,再对其分别进行转换处理 代码附上: function moneyToSt ...

  10. php显示大写金额,PHP数字金额转换成中文大写显示

    整个功能其实不难,只是还算挺实用,所以记一下哈,其他编程语言转换一下也是能可以的! 思路:把传过来的金额转换成整数和小数两部分,再对其分别进行转换处理 代码附上: function moneyToSt ...

最新文章

  1. Android resource linking failed
  2. SQL Servr 2008空间数据应用系列六:基于SQLCRL的空间数据可编程性
  3. EmbeddedWebBrowser(EmbeddedWB)不显示图片
  4. mesh和wifi中继的区别_什么是MESH WIFI?通俗易懂告诉你为什么需要它
  5. [PHP] 安装PHP报错“Primary script unknown”的解决方法
  6. TMG学习(四),允许内部网络解析本地主机的Netbiso名称
  7. 【Chrome浏览器】常用快捷键整理
  8. 利用自己构建的网络进行鼾声识别
  9. 原根(详解+代码实现+例题+快速求解一个数的原根)
  10. C语言程序设计线上测试01,2001年C语言程序设计笔试A卷.doc
  11. cnn神经网络_神经网络之CNN和RNN
  12. jwt如何防止token被窃取_如何使用 NodeJS 实现 JWT 原理
  13. Java课堂作业-------参数求和
  14. Web Audio介绍
  15. postfix疯狂外发垃圾邮件之分析与解决(下)
  16. LCA问题——倍增算法,Tarjan算法讲解
  17. Word添加页码操作
  18. 爬虫之短信验证码自动化接收——Tasker
  19. angularjs 动态监控数据
  20. 【模板】高精度取余函数

热门文章

  1. 电子书阅读器背景颜色修改方法
  2. Java泛型对象的实例化
  3. 笔记5:QQ群聊天机器人
  4. 网页特效——花间飞舞的蝴蝶
  5. 浅谈测试小白到测试大牛的成长历程(分四个境界)
  6. js 大地坐标转经纬度
  7. ads pspice 导入_ADS中使用pspice模型
  8. EasyDarwin开源摄像机访问EasyCamera中海康摄像头语音对讲和云台控制转发实现
  9. Javascript设计模式-18-状态模式
  10. 空间解析几何基础总结