使用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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 中文數字阿拉伯數字相互轉換
- PHP 阿拉伯數字和中文數字的相互轉換PHP
- 阿拉伯-漢字-數字轉換
- 阿拉伯數字轉換成金額大寫金額(包括小數)
- 用Python實現阿拉伯數字轉換成中國漢字Python
- Python將阿拉伯數字轉化為中文大寫Python
- python將中文數字轉化成阿拉伯數字Python
- Python數字轉換中文大寫Python
- C#純數學方法遞迴實現貨幣數字轉換中文C#遞迴
- 一種中文數字轉阿拉伯數字的解決方案
- JavaScript 小寫數字轉換為大寫JavaScript
- Python 轉換金額數字大寫為數字小寫Python
- js將小寫數字轉換為大寫形式JS
- 數字轉換為中文大寫例項程式碼
- 羅馬數字轉換阿拉伯數字(Java版,考慮較為全面)Java
- C語言,實現數字譜到簡譜的轉換(二)C語言
- 演算法題:阿拉伯數字轉化為中文讀法演算法
- 數字轉換為漢字大寫形式程式碼例項
- 阿拉伯與羅馬數字互轉程式
- 大小寫互換-"數字字串"轉換成數字字串
- 小寫數字金額轉大寫
- 中文數字與阿拉伯數字:數字符號的文化交融符號
- jquery金額數字轉為大寫數字jQuery
- 使用Python 實現 PDF 到 HTML 的轉換PythonHTML
- 金額數值轉換為中文大寫
- C#字串轉換為數字的4種方法C#字串
- 【型別轉換】使用c#實現簡易的型別轉換(Emit,Expression,反射)型別C#MITExpress反射
- 金額大寫轉換(轉)
- 大寫金額轉換 (轉)
- Notes中人民幣大寫換算的實現 (轉)
- 前端開發入門到實戰:JavaScript字串轉換數字前端JavaScript字串
- PHP 實現字串翻轉(包含中文漢字)的實現PHP字串
- 數字轉中文 pythonPython
- “數字客服”:如何實現從成本到價值的轉變
- JavaScript將輸入的數字金額轉換成對應的中文大寫金額JavaScript
- 將金錢數額轉換為大寫
- PHP資料型別轉換(字元轉數字,數字轉字元)PHP資料型別字元
- JavaScript字串轉換數字JavaScript字串