小写数字转换为中文大写的最完整C#方案.doc

小写数字转换为中文大写的最完整C#方案.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
小写数字转换为中文大写的最完整C#方案

using System; using System.Text; namespace DigitToChnText { ///本程序用于将小写数字转换为中文大写, 提供以下功能: //2. 能识别并处理任何错误输入 //3. 算法稳定, 速度较快, 中文大写比较符合语言习惯 /// 本程序用于将小写数字变成大写中文数字 class DigitToChnText { private readonly char[] chnText; private readonly char[] chnDigit; public DigitToChnText() { chnText = new char[]{零, 一, 二, 三, 四, 五, 六, 七, 八, 九}; chnDigit = new char[]{十, 百, 千, 万, 亿}; } public string Convert( string strDigit ) { // 检查输入数字 decimal dec; try { dec = decimal.Parse( strDigit ); } catch( FormatException ) { throw new Exception(输入数字的格式不正确。); } catch( Exception e ) { throw e; } if( dec = -10000000000000000m || dec = 10000000000000000m ) { throw new Exception( 输入数字太大或太小,超出范围。 ); } StringBuilder strResult = new StringBuilder(); // 提取符号部分 // +在最前 if( + == strDigit.Substring( 0, 1 ) ) { strDigit = strDigit.Substring( 1 ); } // -在最前 else if( - == strDigit.Substring( 0, 1 ) ) { strResult.Append( 负 ); strDigit = strDigit.Substring( 1 ); } // +在最后 else if( + == strDigit.Substring( strDigit.Length - 1, 1 ) ) { strDigit = strDigit.Substring( 0, strDigit.Length - 1 ); } // -在最后 else if( - == strDigit.Substring( strDigit.Length - 1, 1 ) ) { strResult.Append( 负 ); strDigit = strDigit.Substring( 0, strDigit.Length - 1 ); } // 提取整数和小数部分 int indexOfPoint; if( -1 == ( indexOfPoint = strDigit.IndexOf(.) ) ) // 如果没有小数部分 { strResult.Append( ConvertIntegral( strDigit ) ); } else // 有小数部分 { // 先转换整数部分 if( 0 == indexOfPoint ) // 如果“.”是第一个字符 { strResult.Append( 零 ); } else { strResult.Append( ConvertIntegral( strDigit.Substring( 0, indexOfPoint ) ) ); } // 再转换小数部分 if( strDigit.Length - 1 != indexOfPoint ) // 如果“.”不是最后一个字符 { strResult.Append( 点); strResult.Append( ConvertFractional( strDigit.Substring( indexOfPoint + 1 ) ) ); } } return strResult.T

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档