在数字转换单词C# [英] converting numbers in to words C#

查看:155
本文介绍了在数字转换单词C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


  

可能重复:结果
  <一href=\"http://stackoverflow.com/questions/554314/how-can-i-convert-an-integer-into-its-verbal-re$p$psentation\">How我可以将整数转换的言语再presentation?


任何人都可以给我一个底code我可以将数字转换成文字工作吗?

转换号码的话(从-1000到+1000)
例如:1000 - >千


解决方案

 公共静态字符串NumberToWords(INT数)
{
    如果(编号== 0)
        返回零;    如果(数℃,)
        返回减+ NumberToWords(Math.Abs​​(号));    串词=;    如果((数/ 1000000)大于0)
    {
        也就是说+ = NumberToWords(数/ 1000000)+万;
        数量(%)= 1000000;
    }    如果((数/ 1000)大于0)
    {
        也就是说+ = NumberToWords(数字/ 1000)+千;
        数量(%)= 1000;
    }    如果((数/ 100)大于0)
    {
        也就是说+ = NumberToWords(数/ 100)+百强;
        数(%)= 100;
    }    如果(数大于0)
    {
        如果(字!=)
            文字+ =和;        VAR unitsMap =新[] {零,一,二,三,四有,五,六个一,七,八,九,十 ,十一,十二条,十三,十四,十五,十六条,十七,十八,古诗十九首};
        VAR tensMap =新[] {零,十,二十,三十,四十,五十,六十条,七十,八十,90};        如果(数&小于20)
            也就是说+ = unitsMap [数字];
        其他
        {
            也就是说+ = tensMap [数字/ 10];
            如果((数%10)0)
                文字+ = - + unitsMap [数10%];
        }
    }    返回的话;
}

Possible Duplicate:
How can I convert an integer into its verbal representation?

Can anybody give me a primer code I could work on in converting numbers into words?

Converting numbers to words (ranging from -1000 to +1000) example: 1000 --> one thousand

解决方案

public static string NumberToWords(int number)
{
    if (number == 0)
        return "zero";

    if (number < 0)
        return "minus " + NumberToWords(Math.Abs(number));

    string words = "";

    if ((number / 1000000) > 0)
    {
        words += NumberToWords(number / 1000000) + " million ";
        number %= 1000000;
    }

    if ((number / 1000) > 0)
    {
        words += NumberToWords(number / 1000) + " thousand ";
        number %= 1000;
    }

    if ((number / 100) > 0)
    {
        words += NumberToWords(number / 100) + " hundred ";
        number %= 100;
    }

    if (number > 0)
    {
        if (words != "")
            words += "and ";

        var unitsMap = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
        var tensMap = new[] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };

        if (number < 20)
            words += unitsMap[number];
        else
        {
            words += tensMap[number / 10];
            if ((number % 10) > 0)
                words += "-" + unitsMap[number % 10];
        }
    }

    return words;
}

这篇关于在数字转换单词C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆