| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1462 人关注过本帖
标题:自己写的,C#版,把数字转换为人民币大写
取消只看楼主 加入收藏
zhukuntang
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-10-25
收藏
 问题点数:0 回复次数:1 
自己写的,C#版,把数字转换为人民币大写
public static string GetNumber2CN(double number)
    {
        StringBuilder cnStr = new StringBuilder();
        string CnNumber = "零壹贰叁肆伍陆柒捌玖";
        string CnUnit = "分角元十百千万十百千亿十百千万";
        string numStr = number.ToString("#0.00").Replace(".", "");
        for (int i = 0; i < numStr.Length; i++)
        {
            int num = int.Parse(numStr.Substring(i, 1));
            cnStr.Append(CnNumber.Substring(num, 1) + CnUnit.Substring(numStr.Length - i - 1, 1));
        }
        while (Regex.IsMatch(cnStr.ToString(), "零零|零十|零百|零千|零万|零亿|亿万"))
        {
            cnStr = cnStr.Replace("零十", "零");
            cnStr = cnStr.Replace("零百", "零");
            cnStr = cnStr.Replace("零千", "零");
            cnStr = cnStr.Replace("零万", "万");
            cnStr = cnStr.Replace("零亿", "亿");
            cnStr = cnStr.Replace("零零", "零");
            cnStr = cnStr.Replace("亿万", "亿零");
        }
        cnStr = cnStr.Replace("零元", "元").Replace("零角", "").Replace("零分", "");
        return cnStr.ToString().StartsWith("元") ? cnStr.ToString().Substring(1) : cnStr.ToString();
    }

如果哪位能完善的更好,贴出来分享一下

呵呵,又编辑了以下标题,方便大家查询,下面也跟了完善版

[[it] 本帖最后由 zhukuntang 于 2008-11-1 10:50 编辑 [/it]]
收到的鲜花
  • 小仙2008-10-25 18:05 送鲜花  49朵   附言:感谢分享。
搜索更多相关主题的帖子: 数字 中文 
2008-10-25 12:42
zhukuntang
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-10-25
收藏
得分:0 
稍作修改了一下
public static string GetNumber2CN(double number)
    {
        StringBuilder cnStr = new StringBuilder();
        string CnNumber = "零壹贰叁肆伍陆柒捌玖";
        string CnUnit = "分角元拾佰仟万拾佰仟亿拾佰仟万";
        string numStr = number.ToString("#0.00").Replace(".", "");
        for (int i = 0; i < numStr.Length; i++)
        {
            int num = int.Parse(numStr.Substring(i, 1));
            cnStr.Append(CnNumber.Substring(num, 1) + CnUnit.Substring(numStr.Length - i - 1, 1));
        }
        while (Regex.IsMatch(cnStr.ToString(), "零零|零拾|零佰|零仟|零万|零亿|亿万"))
        {
            cnStr = cnStr.Replace("零拾", "零");
            cnStr = cnStr.Replace("零佰", "零");
            cnStr = cnStr.Replace("零仟", "零");
            cnStr = cnStr.Replace("零万", "万");
            cnStr = cnStr.Replace("零亿", "亿");
            cnStr = cnStr.Replace("零零", "零");
            cnStr = cnStr.Replace("亿万", "亿零");
        }
        cnStr = cnStr.Replace("零元", "元").Replace("零角", "").Replace("零分", "");
        if (cnStr.ToString().StartsWith("元"))
        {
            return cnStr.ToString().Substring(1);
        }
        if (cnStr.ToString().EndsWith("元"))
        {
            return cnStr.ToString() + "整";
        }
        return cnStr.ToString();
    }
2008-11-01 10:45
快速回复:自己写的,C#版,把数字转换为人民币大写
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041397 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved