- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字转换为大写金额,金额大写数字转换器,大写数字金额转换,数字转换成大写金额,把金额数值转换为大写,数字转换为大写,数字转换为人民币大写,excel数字转换为大写,大写数字转换器,数字大写转换
// 数字转换成大写金额// 例如:(new Money(200)).ToString() == 贰佰元namespace Skyiv.Util{using System.Text;class Test{static void Main(){for (;;){System.Console.Write(金额: );string s = System.Console.ReadLine();decimal m;try { m = decimal.Parse(s); }catch { break; }System.Console.WriteLine(大写: + new Money(m));}}}// 该类重载的 ToString() 方法返回的是大写金额字符串class Money{public string Yuan = 元; // “元”,可以改为“圆”、“卢布”之类public string Jiao = 角; // “角”,可以改为“拾”public string Fen = 分; // “分”,可以改为“美分”之类static string Digit = 零壹贰叁肆伍陆柒捌玖; // 大写数字bool isAllZero = true; // 片段内是否全零bool isPreZero = true; // 低一位数字是否是零bool Overflow = false; // 溢出标志long money100; // 金额*100,即以“分”为单位的金额long value; // money100的绝对值StringBuilder sb = new StringBuilder(); // 大写金额字符串,逆序// 只读属性: 零元public string ZeroString{get { return Digit[0] + Yuan; }}// 构造函数public Money(decimal money){try { money100 = (long)(money * 100m); }catch { Overflow = true; }if (money100 == long.MinValue) Overflow = true;}// 重载 ToString() 方法,返回大写金额字符串public override string ToString(){if (Overflow) return 金额超出范围;if (money100 == 0) return ZeroString;string [] Unit = { Yuan, 万, 亿, 万, 亿亿 };value = System.Math.Abs(money100);ParseSection(true);for (int i = 0; i Unit.Length value 0; i++){if (isPreZero !isAllZero) sb.Append(Digit[0]);if (i == 4 sb.ToString().EndsWith(Unit[2]))sb.Remove(sb.Length - Unit[2].Length, Unit[2].Length);sb.Append(Unit[i]);ParseSection(false);if ((i % 2) == 1 isAllZero)sb.Remove(sb.Length - Unit[i].Length, Unit[i].Length);}if (money100 0) sb.Append(负);return Reverse();}// 解析“片段”: “角分(2位)”或“万以内的一段(4位)”void ParseSection(bool isJiaoFen){string [] Unit = isJiaoFen ?new string [] { Fen, Jiao } :new string [] { , 拾, 佰, 仟 };isAllZero = true;for (int i = 0; i Unit.Length value 0; i++){int d = (int)(value % 10);if (d != 0){if (isPreZero !isAllZero) sb.Append(Digit[0]);sb.AppendFormat({0}{1}, Unit[i], Digit[d]);isAllZero = false;}isPreZero = (d == 0);value /= 10;}
文档评论(0)