c# 金钱大写转小写工具类
2023-09-11 14:18:14 时间
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TJCFinanceWriteOff.BizLogic.Common { /// <summary> /// C#金额大写转小写 /// </summary> public static class MoneyUtil { public static string RMBChineseConvertToNumber(string str) { if (string.IsNullOrEmpty(str)) { return string.Empty; } str = str.Replace("零", "").Replace("整", ""); var arr = str.ToCharArray(); double money = 0; //最终的金额 bool yi = false; bool wan = false; bool qian = false; bool bai = false; bool shi = false; bool yuan = false; bool jiao = false; bool fen = false; for (int i = (arr.Length - 1); i >= 0; i--) { double cur = 0; if (arr[i] == '分') { fen = true; continue; } else if (arr[i] == '角') { jiao = true; fen = false; continue; } else if (arr[i] == '元') { yuan = true; jiao = false; fen = false; continue; } else if (arr[i] == '拾') { shi = true; yuan = false; jiao = false; fen = false; continue; } else if (arr[i] == '佰') { bai = true; shi = false; yuan = false; jiao = false; fen = false; continue; } else if (arr[i] == '仟' || arr[i] == '任') { qian = true; bai = false; shi = false; yuan = false; jiao = false; fen = false; continue; } else if (arr[i] == '万') { wan = true; qian = false; bai = false; shi = false; yuan = false; jiao = false; fen = false; continue; } else if (arr[i] == '亿') { yi = true; wan = false; qian = false; bai = false; shi = false; yuan = false; jiao = false; fen = false; continue; } if (fen) cur = ConvertNameToSmall(arr[i]) * 0.01; else if (jiao) { cur = ConvertNameToSmall(arr[i]) * 0.1; jiao = false; } else if (shi) cur = ConvertNameToSmall(arr[i]) * 10; else if (bai) cur = ConvertNameToSmall(arr[i]) * 100; else if (qian) cur = ConvertNameToSmall(arr[i]) * 1000; else if (yuan) cur = ConvertNameToSmall(arr[i]) * 1; else { cur = ConvertNameToSmall(arr[i]); } if (yi) { cur = cur * 100000000; } else if (wan) { cur = cur * 10000; } else { // cur = cur; } money += cur; } return MoneyToString(money); } private static int ConvertNameToSmall(char str) { int name = 0; switch (str.ToString()) { case "零": name = 0; break; case "壹": name = 1; break; case "贰": name = 2; break; case "叁": name = 3; break; case "肆": name = 4; break; case "伍": name = 5; break; case "陆": name = 6; break; case "柒": name = 7; break; case "捌": name = 8; break; case "玖": name = 9; break; default: break; } return name; } public static string MoneyToString(double money) { var moneyArray = money.ToString().ToList(); int index = moneyArray.IndexOf('.'); int integerLengthIndex = index != -1 ? index : moneyArray.Count; while (integerLengthIndex - 3 > 0) { moneyArray.Insert(integerLengthIndex - 3, ','); integerLengthIndex = moneyArray.IndexOf(','); } StringBuilder sb = new StringBuilder("¥"); sb.Append(string.Concat(moneyArray)); switch (moneyArray.IndexOf('.')) { case int i when i == moneyArray.Count - 2: sb.Append("0"); break; case -1: sb.Append(".00"); break; default: break; } return sb.ToString(); } } }
相关文章
- c# 中内部类的简单介绍 C#内部类
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
- C#7.2——编写安全高效的C#代码 c# 中模拟一个模式匹配及匹配值抽取 走进 LINQ 的世界 移除Excel工作表密码保护小工具含C#源代码 腾讯QQ会员中心g_tk32算法【C#版】
- c#打包文件解压缩 C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法 一个简单例子理解C#的协变和逆变 对于过长字符串的大小比对
- 适用于app.config与web.config的ConfigUtil读写工具类 基于MongoDb官方C#驱动封装MongoDbCsharpHelper类(CRUD类) 基于ASP.NET WEB API实现分布式数据访问中间层(提供对数据库的CRUD) C# 实现AOP 的几种常见方式
- 浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂
- 用C#开发的一个通用的地铁换乘查询工具
- C# 字符串拼接性能探索 c#中+、string.Concat、string.Format、StringBuilder.Append四种方式进行字符串拼接时的性能
- Word控件Spire.Doc 【图像形状】教程(12) 如何在C#中旋转word文档上的形状
- Word控件Spire.Doc 转换教程(八):如何在 C#、VB.NET 中将 RTF 转换为 HTML
- C# asp.net实现百度站长工具的主动推送功能
- C#【基础篇】 C# 运算符
- C#,因数分解(质因子分解)Pollard‘s Rho算法的源代码
- C# and android and socket
- C# Aspose.Words 插入纵页、横页、图片
- String到底是值类型还是引用类型(C#)
- C# Socket
- C# 5 in a Nutshell - Delegate
- 基于C#实现简易绘图工具【100010177】
- 用c#开发微信 (17) 微活动 3 投票活动 (文本投票)
- 【ESP8266之LUA开发】九、File操作,实现C#改变并存储工作模式,SSID与PWD的保存与读取
- 【C#/WPF】.Net生成二维码QRCode的工具
- C#项目中使用Log4net日志工具
- C# 保存表格数据到Excel
- c#代码规则,C#程序中元素的命名规范
- C#与.NET Framework c#编程语言,和java是一样的。(c#,java) -->javaweb,asp.net
- C#扩展方法和工具类的区别