如何将数字转换成英文,如:
3675.8
转换成:
THREE THOUSAND SIX HUNDRED AND SEVENTY FIVE AND CENTS EIGHTY

解决方案 »

  1.   

    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();
    }
      

  2.   

    http://singlepine.cnblogs.com/archive/2006/02/05/325754.html