c#金额转中文大写
/// <summary> /// 人民币转大写 /// </summary> public class Money { public Money(double money) { _money = money; } public string ToCapital() { if (Math.Abs(_money) < 0.0001) { return "零元"; } var str = GetIntPart(); GetDecimalPart(str); return str.ToString(); } private static readonly List<char> Uppers = new List<char>() { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; private static readonly List<char> Units = new List<char>() { '分', '角' }; private static readonly List<char> Grees = new List<char>() { '元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟', '万', '拾', '佰' }; private readonly double _money; private StringBuilder GetIntPart() { StringBuilder str = new StringBuilder(); var money = _money; for (int i = 0; money > 0.99999; i++) { var n = (int) (money % 10); str.Insert(0, Grees[i]); str.Insert(0, Uppers[n]); money = money / 10; money = money - n / 10.0; } str = str.Replace("零亿", "亿零"); str = str.Replace("零万", "万零"); str = str.Replace("零拾", "零"); str = str.Replace("零佰", "零"); str = str.Replace("零仟", "零"); str = str.Replace("零零", "零"); str = str.Replace("零零", "零"); str = str.Replace("零亿", "亿"); str = str.Replace("零万", "万"); str = str.Replace("零元", "元"); return str; } private void GetDecimalPart(StringBuilder str) { var money = _money * 100; for (int i = 0; i < 2; i++) { var n = (int) (money % 10); if (n != 0) { str.Insert(0, Units[i]); str.Insert(0, Uppers[n]); } money = money / 10; } } }
相关推荐
-
C# WinForm 取运行目录 csharp
2019-1-7
-
百度语音合成与Unity对接实现 csharp
2019-1-8
-
封装了发送QQ邮件的两个函数,能实现简单的邮件发送功能。 csharp
2019-1-7
-
unity3DAvatar简单融合换装 csharp
2019-1-7
-
队列解决redis插入并发问题 csharp
2019-1-8
-
数字金额转换成中文金额 csharp
2019-1-7
-
DateTime 转换 csharp
2019-1-8
-
Log4net 集成到MVC+EF框架 csharp
2019-1-7
-
C#操作Access数据库类DbAccess csharp
2019-1-7
-
C#路径中获取文件全路径、目录、扩展名、文件名称 csharp
2019-1-7