网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > DotNet > C# > 使用C#实现阿拉伯数字到大写中文的转换  

使用C#实现阿拉伯数字到大写中文的转换

2005-12-06  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  //Money类
  
  using System;
  
  namespace Money
  {
  /// <summary>
  /// 本类实现阿拉伯数字到大写中文的转换
  /// 该类没有对非法数字进行判别
  /// 请调用NumToChn方法
  /// 作者:menway
  /// </summary>
  public class Money
  {
  public Money()
  {
  //
  // TODO: Add constructor logic here
  //
  }
  private char 转换数字(char x)
  {
  string stringChnNames="零一二三四五六七八九";
  string stringNumNames="0123456789";
  return stringChnNames[stringNumNames.IndexOf(x)];
  }
  private string 转换万以下整数(string x)
  {
  string[] stringArrayLevelNames=new string[4] {"","十","百","千"};
  string ret="";
  int i;
  for (i=x.Length-1;i>=0;i--)
  if (x[i]=='0')
  ret=转换数字(x[i])+ret;
  else
  ret=转换数字(x[i])+stringArrayLevelNames[x.Length-1-i]+ret;
  while ((i=ret.IndexOf("零零"))!=-1)
  ret=ret.Remove(i,1); 中国网管联盟bitsCN.com
  if (ret[ret.Length-1]=='零' && ret.Length>1)
  ret=ret.Remove(ret.Length-1,1);
  if (ret.Length>=2 && ret.Substring(0,2)=="一十")
  ret=ret.Remove(0,1);
  return ret;
  }
  private string 转换整数(string x)
  {
  int len=x.Length;
  string ret,temp;
  if (len<=4)
  ret=转换万以下整数(x);
  else if (len<=8)
  {
  ret=转换万以下整数(x.Substring(0,len-4))+"万";
  temp=转换万以下整数(x.Substring(len-4,4));
  if (temp.IndexOf("千")==-1 && temp!="")
  ret+="零"+temp;
  else
  ret+=temp;
  }
  else
  {
  ret=转换万以下整数(x.Substring(0,len-8))+"亿";
  temp=转换万以下整数(x.Substring(len-8,4));
  if (temp.IndexOf("千")==-1 && temp!="")
  ret+="零"+temp;
  else
  ret+=temp;
  ret+="万";
  temp=转换万以下整数(x.Substring(len-4,4));
  if (temp.IndexOf("千")==-1 && temp!="")
  ret+="零"+temp;
  else
  ret+=temp;
  }
  int i;
  if ((i=ret.IndexOf("零万"))!=-1) 网管网www_bitscn_com
  ret=ret.Remove(i+1,1);
  while ((i=ret.IndexOf("零零"))!=-1)
  ret=ret.Remove(i,1);
  if (ret[ret.Length-1]=='零' && ret.Length>1)
  ret=ret.Remove(ret.Length-1,1);
  return ret;
  }
  
  private string 转换小数(string x)
  {
  string ret="";
  for (int i=0;i<x.Length;i++)
  ret+=转换数字(x[i]);
  return ret;
  }
  
  public string NumToChn(string x)
  {
  if (x.Length==0)
  return "";
  string ret="";
  if (x[0]=='-')
  {
  ret="负";
  x=x.Remove(0,1);
  }
  if (x[0].ToString()==".")
  x="0"+x;
  if (x[x.Length-1].ToString()==".")
  x=x.Remove(x.Length-1,1);
  if (x.IndexOf(".")>-1)
  ret+=转换整数(x.Substring(0,x.IndexOf(".")))+"点"+转换小数(x.Substring(x.IndexOf(".")+1));
  else
  ret+=转换整数(x);
  return ret;
  }
  }
  }
  
  //测试工程
  
  using System;
  
  namespace Money
网管联盟bitsCN_com

  {
  /// <summary>
  /// Summary description for Class1.
  /// </summary>
  class MoneyApp
  {
  /// <summary>
  /// The main entry point for the application.
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
  //
  // TODO: Add code to start application here
  //
  Money myMoney=new Money();
  string x;
  while (true)
  {
  Console.Write("X=");
  x=Console.ReadLine();
  if (x=="") break;
  Console.WriteLine("{0}={1}",x,myMoney.NumToChn(x));
  }
  }
  }
  }

TAGs中文   转换   数字   阿拉   实现   ret   if   整数   temp   x.Substring    
 上一篇:C#中改变显示器的分辨率   下一篇:C#实现控件数组
相关文章列表
使用C#实现阿拉伯数字到大写中文的转换 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.DotNET(C#) Socket基本编程
2.Visual C#中用WMI获取远程计算
3.用C# 实现C/S模式下软件自动在线升级
4.使用C#实现阿拉伯数字到大写中文的转换
5.利用C#制作 ASP.NET 登录页面
6.C#简明教程
7.C#来创建和读取XML文档
8.C#的Windows编程中多语言的实现
9.C#中一些字符串操作的常用用法
10.C#委托的具体实现方法
最新推荐文章:
1.Delphi调用WebServices(C#)代码
2.利用C#制作 ASP.NET 登录页面
3.数得明白-用C#制作源代码统计软件
4.利用C#来做ASP.NET的登陆页面
5.C#编程入门基础 控制语句概要
6.C#中将DataSet的内容写成XML
7.使用VBA.NET压缩备份C#工程
8.在C#中动态调用native dll的导出函数
9.C#3.0之对象与集合初始化
10.C#向Excel报表中插入图片的2种方法
网管论坛交流:
·不疯魔不成活
·令你大开眼界的真正标准化机房,已整理重
·为赈灾,女孩舍身拍“裸照”
·Windows Server 2003服务器群集创建和配
·exchange2k3全套官方资料
·双儿一周岁了。。。特殊的礼物来啦。。
·存储备份技术版块守则
·无盘技术交流区守则
·DOS命令基础大全之命令详解<作者吐血
·Windows XP 操作系统默认设置需要注意的