首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视 ┆淘宝手机在线充值 ┆淘宝游戏点卡充值 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>C#语言>C#实现人民币(RMB)转化为大写字母代码
C#实现人民币(RMB)转化为大写字母代码
来源: 发布时间:2007-12-22 发布人: 浏览: 人次   字体: [ ]  
  public class ToChineseValue
    
{        
        
private enum chineseChar{零,壹,贰,叁,肆,伍,陆,柒,捌,玖};
        
private enum charValue{个=1,十,百,千}
        
private enum c{元=1,万,亿,兆};
        
private enum afterPoint{角,分};
        
public ToChineseValue()
        
{
            
//
            
// TODO: 在此处添加构造函数逻辑
            
//
        }

        
public string toChineseChar(decimal d)
        
{
            
decimal flag=0;
            
if(d<0)
            
{
                flag
=d;
                d
=-d;
            }

            
            
string strChinese="";
            
string nextString="";

            System.Globalization.NumberFormatInfo fmat
=new System.Globalization.NumberFormatInfo();
            fmat.CurrencyDecimalDigits
=2;            
            fmat.CurrencySymbol
="";                
            fmat.CurrencyGroupSizes 
=new int []{4,4,4,4};
            fmat.CurrencyGroupSeparator
=",";

            
string strx=d.ToString("c",fmat);        
            
string []afterArray=strx.ToString() .Split ('.');

            
char[] prePoint=afterArray[0].ToCharArray ();
            
char [] nextChar=afterArray[1].ToCharArray ();                
            
            
if(System.Convert .ToDecimal (afterArray[0].ToString ())==0)
            
{ strChinese="";}
            
else
            
{            
                
string [] str=afterArray[0].ToString().Split (',');
                
int Num=str.Length ;        
                
//交错数组用来放四个一组的数组
                char[][]part=new char [Num][];        
                
for(int i=0;i<str.Length ;i++)
                
{                
                    part[i]
=str[i].ToCharArray ();                
                }
        
                
for(int i=0;i<Num;i++)
                
{                
                    
for(int j=0;j<part[i].Length;j++)                
                    
{
                        
//用枚举完成汉字的转换
                        strChinese+=((chineseChar)int.Parse (part[i][j].ToString ())).ToString ();
                        
//用枚举完成单位: 个 十 百 千 
                        strChinese+=((charValue)(part[i].Length-j)).ToString();                        
                    }
    
                    
//以下为处理元 万 亿 兆 
                    strChinese+=((c)(part.Length-i)).ToString();
                }
                
            }
            
            
//处理点号后面的小数部分        
            if(System.Convert.ToDecimal(afterArray[1].ToString ())==0&&System.Convert.ToDecimal(afterArray [0].ToString ())!=0)
            
{
                nextString
="";
            }

            
else
            
{    
                
for(int i=0;i<2;i++)
                
{    
                    
int t=int.Parse (nextChar[i].ToString ());                
                    nextString
+=((chineseChar)int.Parse (nextChar[i].ToString ())).ToString ();
                    nextString
+=((afterPoint)(i)).ToString();
                    
if(t==0)
                    
{
                        StringBuilder str
=new StringBuilder(nextString);                                            
                        nextString
=str.Replace ("零零","").ToString ();
                        nextString
=str.Replace ("零角零分","零元").ToString ();                        
                    }

                }
                
            }
                
            StringBuilder sb
=new StringBuilder(strChinese);    
            
for(int i=0;i<4;i++)
            
{    
                strChinese
=sb.Replace ("","").ToString ();                
                strChinese
=sb.Replace ("零元","").ToString ();
                strChinese
=sb.Replace ("零万","").ToString ();
                strChinese
=sb.Replace ("亿万","亿").ToString ();
                strChinese
=sb.Replace ("零亿","亿").ToString ();
                strChinese
=sb.Replace ("零十","").ToString ();
                strChinese
=sb.Replace ("零百","").ToString ();
                strChinese
=sb.Replace ("零千","").ToString ();
                strChinese
=sb.Replace ("零零","").ToString ();
                strChinese
=sb.Replace ("零角零分","").ToString ();
            }

            
if(flag>=0)
            
{
                
return strChinese+nextString;
            }

            
return ""+strChinese+nextString;
        }

    }

相 关 文 章   发布商链接
·用C#操作类读写WinCE平台Mac地址代码...
·C#中判断字符是否为中文代码
·C#实现更改IP功能源码
·初学者参考C#中操作XML修改完整版
·谈谈对C#委托的理解,附代码实例
·C#中操作XML Node节点细节操作
·浅谈C#对象深拷贝、浅铐贝、直接拷贝
·用C#编写ActiveX控件代码实例
·C#正则表达式常用备忘参考
·C#实现阿拉伯数字转变成大写的类
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·最为经典的C#操作文件的方法...
·有助快速理解C#委托和事件之...
·C#泛型学习笔记总结
·c#语言从dbf数据库提取数据并
·C#编写控制线程的运行和线程...
·怎样在C#中删除只读文件及其...
·C#函数中返回多个值的两种方...
·如何在C#中插入照片到Excel文
·如何在c#中获取事件注册的方...
·C#对timer类的使用操作代码
·什么是泛型?泛型的一些概述
·C#如何从文本文件读取信息并...
·如何在c#中去掉字符串中的回...
·如何使用C#获取IIS服务器版本...
·什么是泛型编程思想?及其简...
热 门 文 章
·C#如何获取文件路径中的文件...
·c#中收发邮件处理代码(POP3,...
·浅谈接口和抽象类的区别,加...
·什么是c#深拷贝与浅拷贝及其...
·C#语言实现创建、删除和移动...
·C#中关于四舍五入函数的讨论...
·c#中的ArrayList属性祥解及其...
·快速进行List排序的通用方法...
·C#对timer类的使用操作代码
·C#如何从文本文件读取信息并...
·C#语言实现从XML文件导出数据...
·用C#编写ActiveX控件代码实例
·如何在c#中去掉字符串中的回...
·String.Split 方法使用及其代...
·C#语言绘制实时曲线图代码实...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .