数字转换???

lunix_ly 2003-11-12 01:39:46
谁能给我一个函数,将输入的阿拉伯数字转换为汉字!在线急等!
...全文
85 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lejin 2003-11-12
  • 打赏
  • 举报
回复
For i=1 to len(str)
.....
'逐一替换咯

next i
lunix_ly 2003-11-12
  • 打赏
  • 举报
回复
Please give me !
haoliqi 2003-11-12
  • 打赏
  • 举报
回复
偶也有个方法,要就知声
gxz01 2003-11-12
  • 打赏
  • 举报
回复
使用C#实现阿拉伯数字到大写中文的转换 [转帖]
//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);
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)
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
{
/// <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));
}
}
}
}

lunix_ly 2003-11-12
  • 打赏
  • 举报
回复
999999999
转换为:玖亿玖千..........
l_clove 2003-11-12
  • 打赏
  • 举报
回复
数字-〉汉字?
内码转换么?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧