高手帮忙!如何将数字转换成英文,在线等! 如何将数字转换成英文,如:3675.8转换成:THREE THOUSAND SIX HUNDRED AND SEVENTY FIVE AND CENTS EIGHTY 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public static string changeDecAmountToEnglish( double dKey ) { // If IsMissing(needwordttl) Then needwordttl = False string[] digit = new string[11] {"", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN"}; string[] tenNum = new string[11] {"", "ELEVEN", "TWELVE", "THIRTEEN", "FOURTEEN", "FIFTEEN", "SIXTEEN", "SEVENTEEN", "EIGHTEEN", "NINETEEN", "TWENTY"}; string[] division = new string[5] {"", "", "THOUSAND", "MILLION", "BILLION"}; string[] tyNum = new string[10] {"", "TEN", "TWENTY", "THIRTY", "FORTY", "FIFTY", "SIXTY", "SEVENTY", "EIGHTY", "NINETY"}; string wording = ""; int integerPart = (int)(dKey); int decimalPart = (int)((dKey - integerPart + 0.0001) * 100); string intString = integerPart.ToString(); int lenOfNum = intString.Length; int comma = (int)((lenOfNum - 1) / 3) + 1; int parts, j; for( int i = comma; i >= 0 ; i-- ) { if ( i == 0 ) { if ( decimalPart <= 0 ) break; parts = decimalPart; wording += " AND CENTS "; } else { parts = (int)(integerPart / ( Math.Pow(1000, (i - 1)))); integerPart = integerPart - (int)( Math.Pow(1000, (i - 1)) * parts); if ( intString.Length >= 4 ) { intString = intString.Substring( 4 ); } else { intString = ""; } } if ( parts > 0 ) { if ( parts >= 100 ) { j = (int)(parts / 100); wording += " " + digit[j] + " HUNDRED"; parts = parts - j * 100; } if ( parts > 20 ) { j = (int)(parts / 10); wording += " " + tyNum[j]; parts = parts - j * 10; } if (parts > 10 ) { j = parts - 10; wording += " " + tenNum[j]; parts = parts - j; } else { wording += " " + digit[parts]; } if (i > 1 ) wording += " " + division[i]; } else { if ( i > 1 ) wording += " ONE " + division[i]; } } return wording.Trim(); } http://singlepine.cnblogs.com/archive/2006/02/05/325754.html web.comfig中给文件加密问题(在线等) c#自定义控件--引发事件 C#释放内存空间的问题~急急急 请问如何设置listview的上边距和左边距啊? C#写SQL SERVER 2005函数为什么不能访问数据库啊 在AD中,组织单位中的用户移动,如何实现? 【求助】C#接口继承和多态问题 一个窗体的问题,在线等~~~~~!(急~~!) 线程终止问题 OleDB连接中的问题 如何在组件属性中获取当前路径? 【求助】请问如何自动搜索局域网内的机器?多谢
{
// If IsMissing(needwordttl) Then needwordttl = False
string[] digit = new string[11] {"", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN"};
string[] tenNum = new string[11] {"", "ELEVEN", "TWELVE", "THIRTEEN", "FOURTEEN", "FIFTEEN", "SIXTEEN", "SEVENTEEN", "EIGHTEEN", "NINETEEN", "TWENTY"};
string[] division = new string[5] {"", "", "THOUSAND", "MILLION", "BILLION"};
string[] tyNum = new string[10] {"", "TEN", "TWENTY", "THIRTY", "FORTY", "FIFTY", "SIXTY", "SEVENTY", "EIGHTY", "NINETY"};
string wording = ""; int integerPart = (int)(dKey);
int decimalPart = (int)((dKey - integerPart + 0.0001) * 100);
string intString = integerPart.ToString();
int lenOfNum = intString.Length;
int comma = (int)((lenOfNum - 1) / 3) + 1;
int parts, j; for( int i = comma; i >= 0 ; i-- )
{
if ( i == 0 )
{
if ( decimalPart <= 0 ) break;
parts = decimalPart;
wording += " AND CENTS ";
}
else
{
parts = (int)(integerPart / ( Math.Pow(1000, (i - 1))));
integerPart = integerPart - (int)( Math.Pow(1000, (i - 1)) * parts);
if ( intString.Length >= 4 )
{
intString = intString.Substring( 4 );
}
else
{
intString = "";
}
} if ( parts > 0 )
{
if ( parts >= 100 )
{
j = (int)(parts / 100);
wording += " " + digit[j] + " HUNDRED";
parts = parts - j * 100;
}
if ( parts > 20 )
{
j = (int)(parts / 10);
wording += " " + tyNum[j];
parts = parts - j * 10;
}
if (parts > 10 )
{
j = parts - 10;
wording += " " + tenNum[j];
parts = parts - j;
}
else
{
wording += " " + digit[parts];
}
if (i > 1 ) wording += " " + division[i];
}
else
{
if ( i > 1 ) wording += " ONE " + division[i];
}
}
return wording.Trim();
}