金额转换成人民币大写
如题,工作中遇到了这个问题,要将金额数字转换成人民币大写的情况,以下是代码:
// 将数值金额转换为中文大写金额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 /**/ /// <summ ...
- 关于数字转换成人民币大写的问题
我们在参与大型项目时,难免会遇到数值转换人民币大写的情况.因为我今天接触了一个这样的转换,但原代码存在BUG,转换经常出现问题.于是我就去网上搜索了相关资源.由于没有找到相对权威的转换代码,网上给出的 ...
- 如何把数字金额转换成中文大写
问题:要求把万亿级别内的浮点数转换成中文大写,例如把数字1112221000060.254400转换成:壹万壹仟壹佰贰拾贰亿贰仟壹佰万零陆拾元零贰角伍分 分析:关键是先把double类型转换成char ...
- 把数字金额转换成中文大写数字
//把数字金额转换成中文大写数字 function changeNumMoneyToChinese(money) { var cnNums = new Array("零", &qu ...
- 数值转换成人民币大写的一个类
网上有许多将数值转换成人民币大写的代码,其中有不少写得很好的.昨天在Csdn上浏览,觉得这个比较简洁,但也有几点小Bug,稍加整理,觉得仍然与财务表达方式有不一致的地方,故先贴上来,请大家看看. pu ...
- 数字转换成人民币大写格式(带界面)
今天看了算法的公开课,有一个把数字转换成人民币大写的算法. 后面就想着自己写一个界面的,好几天没有写一个完整的程序的. 当然有一些BUG,没有时间优化,后面在慢慢优化. 自己的名言:每天努力一点儿,总 ...
- 阿拉伯数字小写金额转换成中文大写金C额程序说明
阿拉伯数字小写金额转换成中文大写金额C程序说明 1.问题的提出 寒假帮同学交缴话费时,不经意间看到收据上同时有小写金额和大写金额,想想各种各样的票据诸如缴费收据.银行业务回单.商场销售凭证.专用发票等 ...
- java数字金额转换成汉字大写
java数字转换成汉字大写.数字转发票上的人民币大写 1.调用方法 NumToCN.number2CNMontrayUnit(zjJE): 2.转换类 import java.math.BigDeci ...
- php数字转换百千万,PHP数字金额转换成中文大写显示
整个功能其实不难,只是还算挺实用,所以记一下哈,其他编程语言转换一下也是能可以的! 思路:把传过来的金额转换成整数和小数两部分,再对其分别进行转换处理 代码附上: function moneyToSt ...
- php显示大写金额,PHP数字金额转换成中文大写显示
整个功能其实不难,只是还算挺实用,所以记一下哈,其他编程语言转换一下也是能可以的! 思路:把传过来的金额转换成整数和小数两部分,再对其分别进行转换处理 代码附上: function moneyToSt ...
最新文章
- Android resource linking failed
- SQL Servr 2008空间数据应用系列六:基于SQLCRL的空间数据可编程性
- EmbeddedWebBrowser(EmbeddedWB)不显示图片
- mesh和wifi中继的区别_什么是MESH WIFI?通俗易懂告诉你为什么需要它
- [PHP] 安装PHP报错“Primary script unknown”的解决方法
- TMG学习(四),允许内部网络解析本地主机的Netbiso名称
- 【Chrome浏览器】常用快捷键整理
- 利用自己构建的网络进行鼾声识别
- 原根(详解+代码实现+例题+快速求解一个数的原根)
- C语言程序设计线上测试01,2001年C语言程序设计笔试A卷.doc
- cnn神经网络_神经网络之CNN和RNN
- jwt如何防止token被窃取_如何使用 NodeJS 实现 JWT 原理
- Java课堂作业-------参数求和
- Web Audio介绍
- postfix疯狂外发垃圾邮件之分析与解决(下)
- LCA问题——倍增算法,Tarjan算法讲解
- Word添加页码操作
- 爬虫之短信验证码自动化接收——Tasker
- angularjs 动态监控数据
- 【模板】高精度取余函数