使用C#实现阿拉伯数字到大写中文的转换-第二种方法
来源:互联网 发布:在淘宝上开店要多少钱 编辑:程序博客网 时间:2024/04/29 10:24
这是类的源码
using System;
namespace ConsoleApp
{
/// <summary>
/// 本类实现阿拉伯数字到大写中文的转换
/// 该类没有对非法数字进行判别
/// 请调用NumToChn方法
/// </summary>
public class NumFormat
{
public NumFormat()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
// 转换数字
private char ToNum(char x)
{
string strChnNames="零一二三四五六七八九";
string strNumNames="0123456789";
return strChnNames[strNumNames.IndexOf(x)];
}
// 转换万以下整数
private string ChangeInt(string x)
{
string[] strArrayLevelNames=new string[4] {"","十","百","千"};
string ret = "";
int i;
for (i=x.Length-1;i>=0;i--)
if (x[i] == '0')
ret = ToNum(x[i]) + ret;
else
ret = ToNum(x[i]) + strArrayLevelNames[x.Length-1-i] + ret;
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);
if (ret.Length>=2 && ret.Substring(0,2)=="一十")
ret=ret.Remove(0,1);
return ret;
}
// 转换整数
private string ToInt(string x)
{
int len = x.Length;
string ret,temp;
if (len<=4)
ret = ChangeInt(x);
else if (len<=8)
{
ret = ChangeInt(x.Substring(0,len-4)) + "万";
temp = ChangeInt(x.Substring(len-4,4));
if (temp.IndexOf("千")==-1 && temp!="")
ret += "零" + temp;
else
ret += temp;
}
else
{
ret=ChangeInt(x.Substring(0,len-8)) + "亿";
temp=ChangeInt(x.Substring(len-8,4));
if (temp.IndexOf("千")==-1 && temp!="")
ret += "零" + temp;
else
ret += temp;
ret += "万";
temp = ChangeInt(x.Substring(len-4,4));
if (temp.IndexOf("千")==-1 && temp!="")
ret += "零" + temp;
else
ret += temp;
}
int i;
if ((i=ret.IndexOf("零万"))!=-1)
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 ToDecimal(string x)
{
string ret="";
for (int i=0;i<x.Length;i++)
ret += ToNum(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 += ToInt(x.Substring(0,x.IndexOf(".")))+"点"+ToDecimal(x.Substring(x.IndexOf(".")+1));
else
ret += ToInt(x);
return ret;
}
}
}
这是测试工程
using System;
namespace ConsoleApp
{
class MainClass
{
static void Main(string[] args)
{
/*
System.Console.WriteLine("Hello, The World!");
System.Console.WriteLine("My Love!");
ClassTest ct = new ClassTest();
System.Console.WriteLine(ct.Get_Str());
*/
/*
// 重载运算符
MyVector v1 = new MyVector(5, 12);
MyVector v2 = new MyVector(4, 3);
MyVector v3 = new MyVector();
v3 = v1 + v2;
System.Console.WriteLine("{0}测试一下", v3.Length);
*/
// 转换成大写数字
NumFormat nf = new NumFormat();
string x;
while (true)
{
Console.Write("X=");
x = Console.ReadLine();
if (x == "") break;
Console.WriteLine("{0}={1}", x, nf.NumToChn(x));
}
}
}
}
- 使用C#实现阿拉伯数字到大写中文的转换-第二种方法
- 使用C#实现阿拉伯数字到大写中文的转换-第二种方法
- 使用C#实现阿拉伯数字到大写中文的转换
- 使用C#实现阿拉伯数字到大写中文的转换
- C#实现阿拉伯数字到大写中文的转换
- Java实现阿拉伯数字转换成中文大写数字,以及中文大写数字到阿拉伯数字的转换。
- Java实现阿拉伯数字转换成中文大写数字,以及中文大写数字到阿拉伯数字的转换
- 实现阿拉伯数字大写中文的转换
- C# 实现将阿拉伯数字转换成中文大写金额
- 关于C#实现阿拉伯数字转换成中文大写
- C#实现的【阿拉伯数字转换成中文大写金额】代码(原创)
- C#阿拉伯数字转换为中文大写
- 阿拉伯数字转中文大写的一个方法
- 超级简单的大写金额转换--阿拉伯数字转中文大写
- C#阿拉伯数字金额转换为中文大写金额
- C#写的将阿拉伯数字转换成中文大写金额代码
- 实现阿拉伯数字变成中文大写
- 一个将阿拉伯数字转换成中文大写的算法[C#]
- 男儿当杀人!!!!(诗一首)
- 我是怎样“诱骗”漂亮女孩的(上)[转载]
- C#中实现根据年月日计算星期几的函数
- 唐僧在如来面前吐真言
- 我不爱的那个女人[转]
- 使用C#实现阿拉伯数字到大写中文的转换-第二种方法
- 想念
- VBA脚本 快速删除Excle表格中的空行
- 两只老鼠
- WinCE Notification
- 數據集轉置
- 从现在开始,我只
- jsp和excel的数据交换-----我的项目实践
- J2EE 第5次课笔记--Servlet