栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

C#中利用正则表达式将人民币金额转换为大写汉字

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#中利用正则表达式将人民币金额转换为大写汉字

直接来看代码:

public static string ConvertToChineseMoney(double money) 
  { 
    if (money < 0) 
      throw new ArgumentOutOfRangeException("参数money不能为负值!"); 
    string s = money.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A"); 
    s = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[.]|$))))", "${b}${z}"); 
    return Regex.Replace(s, ".", delegate(Match m) { return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟萬億兆京垓秭穰"[m.Value[0] - '-'].ToString(); }); 
  } 

调用该方法:

Random r = new Random(); 
for (int i = 0; i < 10; i++) 
{ 
  double m = r.Next() / 100.0; 
  Response.Write(m + "---- " + ConvertToChineseMoney(m) + "
"); }

来测试一下,结果就像下面一样:

5970370.36---- 伍佰玖拾柒萬零叁佰柒拾元叁角陆分

6521548.6---- 陆佰伍拾贰萬壹仟伍佰肆拾捌元陆角

12179380.35---- 壹仟贰佰壹拾柒萬玖仟叁佰捌拾元叁角伍分

15742735.47---- 壹仟伍佰柒拾肆萬贰仟柒佰叁拾伍元肆角柒分

9236554.09---- 玖佰贰拾叁萬陆仟伍佰伍拾肆元零玖分

9706980.49---- 玖佰柒拾萬陆仟玖佰捌拾元肆角玖分

11873034.16---- 壹仟壹佰捌拾柒萬叁仟零叁拾肆元壹角陆分

21141596.22---- 贰仟壹佰壹拾肆萬壹仟伍佰玖拾陆元贰角贰分

17040243.44---- 壹仟柒佰零肆萬零贰佰肆拾叁元肆角肆分

5358585.54---- 伍佰叁拾伍萬捌仟伍佰捌拾伍元伍角肆分

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/163146.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号