使用C#實現阿拉伯數字到大寫中文的轉換 (轉)
//Money類
using System;
namespace Money
{
///
/// 本類實現阿拉伯數字到大寫中文的轉換
/// 該類沒有對數字進行判別
/// 請NumToChn方法
/// 作者:menway
///
public class Money
{
public Money()
{
//
// TODO: Add constructor logic here
//
}
private char 轉換數字(char x)
{
string stringChnNames="零一二三四五六七八九";
string striumNames="0123456789";
return stringChnNames[strinmNames.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
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 description for Class1.
///
class MoneyApp
{
///
/// The main entry point for the application.
///
[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));
}
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-956469/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 中文數字阿拉伯數字相互轉換
- Python數字轉換中文大寫Python
- PHP 阿拉伯數字和中文數字的相互轉換PHP
- 阿拉伯-漢字-數字轉換
- 用Python實現阿拉伯數字轉換成中國漢字Python
- python將中文數字轉化成阿拉伯數字Python
- 一種中文數字轉阿拉伯數字的解決方案
- Python 轉換金額數字大寫為數字小寫Python
- 數字金額轉中文繁體大寫
- C語言,實現數字譜到簡譜的轉換(二)C語言
- 使用Python 實現 PDF 到 HTML 的轉換PythonHTML
- 演算法題:阿拉伯數字轉化為中文讀法演算法
- 【型別轉換】使用c#實現簡易的型別轉換(Emit,Expression,反射)型別C#MITExpress反射
- 小寫數字金額轉大寫
- python實現中文和unicode轉換PythonUnicode
- jquery金額數字轉為大寫數字jQuery
- 數字轉中文 pythonPython
- PHP 實現字串翻轉(包含中文漢字)的實現PHP字串
- 前端開發入門到實戰:JavaScript字串轉換數字前端JavaScript字串
- 將金錢數額轉換為大寫
- 中文數字與阿拉伯數字:數字符號的文化交融符號
- “數字客服”:如何實現從成本到價值的轉變
- excel大寫字母轉換Excel
- 鴻蒙NEXT開發案例:數字轉中文大小寫鴻蒙
- JavaScript字串轉換數字JavaScript字串
- python實現字串轉換整數Python字串
- .NET神器:輕鬆實現數字轉大寫金額的秘籍與示例程式碼
- Python實現"數字轉換為十六進位制"的兩種方法
- java將IP地址轉換為數字以及逆向轉換Java
- string與數字相互轉換
- 小寫金額轉換為大寫
- C# 顯式轉換關鍵字 explicitC#
- 工程座標轉換方法C#程式碼實現C#
- PHP 將數字轉換為漢字PHP
- 用js實現小寫金額轉大寫的方法JS
- 使用正則 轉換大小寫
- 【Go】IP地址轉換:數字與字串之間高效轉換Go字串
- 使用vue實現行列轉換的一種方法。Vue
- Thymeleaf將字串轉換為數字字串