将人民币大写金额格式转为数字金额格式C#代码
网上相关资料都是将数字金额转换为大写金额的代码,因为需要所以自己实现了将大写格式转为数字金额 格式,有相同需要的可以参考了
/// <summary>/// 将人民币大写金额转换为数字金额/// </summary>public class RMBConversion{/// <summary>/// /// </summary>/// <param name="value"></param>/// <returns></returns>private static decimal ToLowerCaseFunction(string value){List<string> list = new List<string>();if (value.Contains("仟")){var arr1 = Regex.Split(value, @"仟", RegexOptions.IgnoreCase);if (arr1 != null && arr1.Length > 0){list.Add(arr1[0] + "000");}if(arr1.Length > 1){value = arr1[1];if(value.Contains("佰")){var arr2 = Regex.Split(value, @"佰", RegexOptions.IgnoreCase);if (arr2 != null && arr2.Length > 0){list.Add(arr2[0] + "00");}if (arr2.Length > 1){value = arr2[1];if (value.Contains("拾")){var arr3 = Regex.Split(value, @"拾", RegexOptions.IgnoreCase);if (arr3 != null && arr3.Length > 0){list.Add(arr3[0] + "0");}if (arr3.Length > 1){list.Add(arr3[1]);}}else //不含拾 拾{list.Add(value);}}}else //不含佰的情况{if(value.Contains("拾")){var arr3 = Regex.Split(value, @"拾", RegexOptions.IgnoreCase);if (arr3 != null && arr3.Length > 0){list.Add(arr3[0] + "0");}if (arr3.Length > 1){list.Add(arr3[1]);}}else //不含拾 拾{list.Add(value);}}}}else //不含仟的情况{if(value.Contains("佰")){var arr2 = Regex.Split(value, @"佰", RegexOptions.IgnoreCase);if (arr2 != null && arr2.Length > 0){list.Add(arr2[0] + "00");}if (arr2.Length > 1){value = arr2[1];if (value.Contains("拾")){var arr3 = Regex.Split(value, @"拾", RegexOptions.IgnoreCase);if (arr3 != null && arr3.Length > 0){list.Add(arr3[0] + "0");}if (arr3.Length > 1){list.Add(arr3[1]);}}else //不含拾{list.Add(value);}}}else //不含佰的情况{if(value.Contains("拾")){var arr3 = Regex.Split(value, @"拾", RegexOptions.IgnoreCase);if (arr3 != null && arr3.Length > 0){list.Add(arr3[0] + "0");}if (arr3.Length > 1){list.Add(arr3[1]);}}else //不含拾{list.Add(value);}}}decimal result = 0;if(list != null && list.Count > 0){foreach (var item in list){decimal number = 0;if (decimal.TryParse(item, out number)){result += number;}}}return result;}/// <summary>/// 将人民币金额转为数字格式/// </summary>/// <param name="str"></param>/// <returns></returns>public static decimal ToLowerCase(string str){NameValueCollection filterList = new NameValueCollection();filterList.Add("零", "0");filterList.Add("壹", "1");filterList.Add("贰", "2");filterList.Add("叁", "3");filterList.Add("肆", "4");filterList.Add("伍", "5");filterList.Add("五", "5");filterList.Add("陆", "6");filterList.Add("柒", "7");filterList.Add("捌", "8");filterList.Add("玖", "9");filterList.Add("元", "圆");filterList.Add("正", "整");filterList.Add("千", "仟");filterList.Add("整", "");for (int i = 0; i < filterList.Count; i++){string key = filterList.GetKey(i);if (str.Contains(key)){str = str.Replace(key, filterList.Get(i));}}List<decimal> decimalList = new List<decimal>();decimal tempValue = 0;//拆分if (str.Contains("亿")){var arr = Regex.Split(str, @"亿", RegexOptions.IgnoreCase);tempValue = ToLowerCaseFunction(arr[0]);if (arr.Length > 1){str = arr[1];}decimalList.Add(tempValue * 100000000);}if (str.Contains("万")){var arr = Regex.Split(str, @"万", RegexOptions.IgnoreCase);tempValue = ToLowerCaseFunction(arr[0]);if (arr.Length > 1){str = arr[1];}decimalList.Add(tempValue * 10000);}if (str.Contains("圆")){var arr = Regex.Split(str, @"圆", RegexOptions.IgnoreCase);tempValue = ToLowerCaseFunction(arr[0]);if (arr.Length > 1){str = arr[1];}decimalList.Add(tempValue);}if (str.Contains("角") || str.Contains("分")){str = str.Replace("角", "").Replace("分", "");decimal.TryParse(str, out tempValue);decimalList.Add(tempValue / 100);}return Math.Round(decimalList.Sum(), 2); //保留两位小数}}
调用格式:
string rmbStr = "肆拾贰万贰仟肆佰肆拾壹元叁角贰分";//大写金额转换decimal money = RMBConversion.ToLowerCase(rmbStr);result:422441.32
将人民币大写金额格式转为数字金额格式C#代码相关推荐
- sqlplus 执行sql文件_详解sqlplus设定行大小、页大小、字符列格式、数字列格式、清屏...
概述 sqlplus虽然是DBA们最为经常使用的Oracle客户端工具,但是它在输出结果格式化上不是很好,如折行.分页不好等,所以一般启动sqlplus后多少都要做些设置,如linesize.page ...
- 【举例说明】 利用cmd代码将图片png格式转为图片eps格式
摘要:写论文有时候需要将图片png格式转为eps格式,用Ps转化eps格式后,Latex生成pdf论文里图片会很不清晰,网上有cmd代码教程,但由于自己是电脑小白,不知如何在cmd中打开在桌面的图片文 ...
- Excel日期格式转为常规文本格式
需求: Excel日期格式设置成常规后显示为数字格式,想要将格式转换成常规后,还显示转换之前的文本信息. 解决方案:
- XML格式转为Lua表格式
XML 格式转化为 Lua 的表,有很多方法,网上有一个luaXml的库,也饱受好评.但是其中功能太多,而我的需求又太简单,于是写了一个很简单的函数来完成需求.主要是通过 string.find 的机 ...
- 将数字金额转化为大写金额,且数字金额最多只保留两位小数
采用element ui 中的input框实现,填写小写金额,自动实现大写金额 截图: 代码: 数字转大写金额实现: export function dealBigMoney(n) {var frac ...
- 人民币大写转换小写数字金额 ts/es6
/* 这里的金额 只到千万 不含亿元转换 */ /** 如果有亿元 算法和以下一样 加几步就是 */ /**想法: 把金额拆分三个数组分别计算 1. 以万结束为一个2. 以元结束为一个3. 小数 角分 ...
- Excel开具发票信息将大写中文金额转为数字金额
开始之前,请大家下载一下方方格子插件中的函数扩展包,好了最近财务小张要将每个人的加班工资写在工资发票上,但是发现从系统导出的只有大写金额,如何转成数字小写呢? (方方格子插件) 1.先看动图演示吧 ...
- 苹果heic格式怎么变成jpg格式
我们都知道heic格式是苹果iOS11以及以上系统默认的图片储存格式,而安卓和电脑中是无法直接打开的,其实是可以将特殊的heic格式转为常用的格式,然后在安卓或者电脑中打开查看的,那苹果heic格式怎 ...
- 利用vantUI组件库中的Field 输入框、Cell 单元格完成金额数字框的数字转金额格式和金额大写
近期公司的任务需要这个功能,利用vantUI组件库中的Field 输入框.Cell 单元格完成金额数字框的数字转金额格式和金额大写 1.首先写工具类utils.js // 将数字转换成金额千字文格式显 ...
- 如何从复杂的货币种类中选出人民币格式的数字
在数字上应用货币类型对于大家来讲,简直小菜一碟.但如何提取某个货币类型的数据呢?细心的学员会发现,给数字应用的货币格式在公式编辑栏无法查看到,所以要把某个货币类型的全部数据挑选出来就很麻烦. 在某石油 ...
最新文章
- 《数学之美》第6章 信息的度量和作用
- VMware Virtual SAN 互操作性:OpenStack
- 你当真了解count(*)count(id)count(1)吗?
- 洛谷P3066 [USACO12DEC]逃跑的BarnRunning Away From…
- c++ 凸包 分治算法_三维凸包
- 关闭浏览器网页触发事件_浅析浏览器渲染和 script 加载
- Michael Dell承诺打造新的EMC/戴尔/VMware工程技术系统
- 【英语学习】【医学】Unit 03 Blood
- Qt窗口部件——对话框QDialog
- 广播中等待较久出现anr问题
- iphone/ipad 横竖屏切换
- 一、音频基础知识 - 耳机接口标准
- java8中Function函数
- JavaCV音视频开发宝典:录制vp8和vp9编码的webm格式视频,以mp4转webm为例
- uint8_t范围_uint8_t / uint16_t / uint32_t /uint64_t数据类型详解
- 致新浪科技频道的一封公开信
- STM32HAL库函数
- Sun JVM,JRocket,J9,Harmony, 四种主要的Java虚拟机实现
- 【不支持全功能typec的电脑如何一线直连便携屏】
- 今天兼职的那份工作,安排了休息
热门文章
- android图片的透明度变化,Android如何实现改变图片的透明度
- new一个对象的过程发生了什么
- 篆刻学简体——第一章
- 他们说用计算机伴奏,用Cubase/Nuendo来消除人声提取伴奏 | 飞来音电脑音乐技术...
- 程序员实用小工具(一)
- kotlin的Viewpage2+Fragment的简单使用(setUserVisibleHint方法过时)
- canvas小球绕斜椭圆轨迹运动
- 上海臻图信息3DGIS+BIM技术助力智慧城市地下综合管廊建设
- 验票证明怎么打印_纳税人证明在哪里打印
- matlab仿真界面设计,基于MATLAB图形用户界面GUI的电路仿真实验的制作