c# 金钱大写转小写工具类
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(); } } }
作者:奇
出处:https://www.cnblogs.com/fanqisoft/p/11757066.html
版权:本作品采用「本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。」许可协议进行许可。
分类:
开发填坑
如果文章内容对您有所帮助,欢迎赞赏.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!