网上相关资料都是将数字金额转换为大写金额的代码,因为需要所以自己实现了将大写格式转为数字金额 格式,有相同需要的可以参考了

 /// <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#代码相关推荐

  1. sqlplus 执行sql文件_详解sqlplus设定行大小、页大小、字符列格式、数字列格式、清屏...

    概述 sqlplus虽然是DBA们最为经常使用的Oracle客户端工具,但是它在输出结果格式化上不是很好,如折行.分页不好等,所以一般启动sqlplus后多少都要做些设置,如linesize.page ...

  2. 【举例说明】 利用cmd代码将图片png格式转为图片eps格式

    摘要:写论文有时候需要将图片png格式转为eps格式,用Ps转化eps格式后,Latex生成pdf论文里图片会很不清晰,网上有cmd代码教程,但由于自己是电脑小白,不知如何在cmd中打开在桌面的图片文 ...

  3. Excel日期格式转为常规文本格式

    需求: Excel日期格式设置成常规后显示为数字格式,想要将格式转换成常规后,还显示转换之前的文本信息. 解决方案:

  4. XML格式转为Lua表格式

    XML 格式转化为 Lua 的表,有很多方法,网上有一个luaXml的库,也饱受好评.但是其中功能太多,而我的需求又太简单,于是写了一个很简单的函数来完成需求.主要是通过 string.find 的机 ...

  5. 将数字金额转化为大写金额,且数字金额最多只保留两位小数

    采用element ui 中的input框实现,填写小写金额,自动实现大写金额 截图: 代码: 数字转大写金额实现: export function dealBigMoney(n) {var frac ...

  6. 人民币大写转换小写数字金额 ts/es6

    /* 这里的金额 只到千万 不含亿元转换 */ /** 如果有亿元 算法和以下一样 加几步就是 */ /**想法: 把金额拆分三个数组分别计算 1. 以万结束为一个2. 以元结束为一个3. 小数 角分 ...

  7. Excel开具发票信息将大写中文金额转为数字金额

    开始之前,请大家下载一下方方格子插件中的函数扩展包,好了最近财务小张要将每个人的加班工资写在工资发票上,但是发现从系统导出的只有大写金额,如何转成数字小写呢? (方方格子插件) 1.先看动图演示吧 ​ ...

  8. 苹果heic格式怎么变成jpg格式

    我们都知道heic格式是苹果iOS11以及以上系统默认的图片储存格式,而安卓和电脑中是无法直接打开的,其实是可以将特殊的heic格式转为常用的格式,然后在安卓或者电脑中打开查看的,那苹果heic格式怎 ...

  9. 利用vantUI组件库中的Field 输入框、Cell 单元格完成金额数字框的数字转金额格式和金额大写

    近期公司的任务需要这个功能,利用vantUI组件库中的Field 输入框.Cell 单元格完成金额数字框的数字转金额格式和金额大写 1.首先写工具类utils.js // 将数字转换成金额千字文格式显 ...

  10. 如何从复杂的货币种类中选出人民币格式的数字

    在数字上应用货币类型对于大家来讲,简直小菜一碟.但如何提取某个货币类型的数据呢?细心的学员会发现,给数字应用的货币格式在公式编辑栏无法查看到,所以要把某个货币类型的全部数据挑选出来就很麻烦. 在某石油 ...

最新文章

  1. 《数学之美》第6章 信息的度量和作用
  2. VMware Virtual SAN 互操作性:OpenStack
  3. 你当真了解count(*)count(id)count(1)吗?
  4. 洛谷P3066 [USACO12DEC]逃跑的BarnRunning Away From…
  5. c++ 凸包 分治算法_三维凸包
  6. 关闭浏览器网页触发事件_浅析浏览器渲染和 script 加载
  7. Michael Dell承诺打造新的EMC/戴尔/VMware工程技术系统
  8. 【英语学习】【医学】Unit 03 Blood
  9. Qt窗口部件——对话框QDialog
  10. 广播中等待较久出现anr问题
  11. iphone/ipad 横竖屏切换
  12. 一、音频基础知识 - 耳机接口标准
  13. java8中Function函数
  14. JavaCV音视频开发宝典:录制vp8和vp9编码的webm格式视频,以mp4转webm为例
  15. uint8_t范围_uint8_t / uint16_t / uint32_t /uint64_t数据类型详解
  16. 致新浪科技频道的一封公开信
  17. STM32HAL库函数
  18. Sun JVM,JRocket,J9,Harmony, 四种主要的Java虚拟机实现
  19. 【不支持全功能typec的电脑如何一线直连便携屏】
  20. 今天兼职的那份工作,安排了休息

热门文章

  1. android图片的透明度变化,Android如何实现改变图片的透明度
  2. new一个对象的过程发生了什么
  3. 篆刻学简体——第一章
  4. 他们说用计算机伴奏,用Cubase/Nuendo来消除人声提取伴奏 | 飞来音电脑音乐技术...
  5. 程序员实用小工具(一)
  6. kotlin的Viewpage2+Fragment的简单使用(setUserVisibleHint方法过时)
  7. canvas小球绕斜椭圆轨迹运动
  8. 上海臻图信息3DGIS+BIM技术助力智慧城市地下综合管廊建设
  9. 验票证明怎么打印_纳税人证明在哪里打印
  10. matlab仿真界面设计,基于MATLAB图形用户界面GUI的电路仿真实验的制作