代码之家  ›  专栏  ›  技术社区  ›  Craig

有没有一个简单的方法来转换一个数字到印度字格式与莱克斯和克罗尔?

  •  3
  • Craig  · 技术社区  · 14 年前

    如标题所示,我希望使用C将长数字转换为带单词的格式。文化设置似乎不执行此操作,我目前正在执行此操作

    String.Format(new CultureInfo("en-IN"), "{0:C0}", Price)

    但对于很长的数字,我更喜欢文字格式。我不是从印度来的,只是对这个系统的工作方式有点模糊的了解。

    3 回复  |  直到 11 年前
        1
  •  1
  •   Cyril Gupta    14 年前

    虽然我不能给你代码本身,但这里是系统

    • 1 -一
    • 10—十
    • 1000万
    • 10000-10000
    • 100000 - Lakh
    • 1000000-1000000卢比
    • 10000000-百万
    • 100000000-10000万
    • 100000000-阿拉伯
    • 1000000000-10个阿拉伯人
    • 1000000000-哈拉布
    • 10000000000-10卡拉布
    • 1000000000000-1 NEEL
    • 1000000000000-10 NEEL
    • 10000000000000-1个PADM

    我已经为我做的一个会计程序包写了程序,所以写它并不特别困难。

        2
  •  4
  •   kleopatra Aji kattacherry    11 年前
    public static string NumberToWords(int number)
        {
            if (number == 0) { return "zero"; }
            if (number < 0) { return "minus " + NumberToWords(Math.Abs(number)); }
            string words = "";
            if ((number / 10000000) > 0) { words += NumberToWords(number / 10000000) + " Crore "; number %= 10000000; }
            if ((number / 100000) > 0) { words += NumberToWords(number / 100000) + " Lakh "; number %= 100000; }
            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;
        }
    
        3
  •  2
  •   Ryan Fernandes    14 年前
    • 1 -一
    • 10-10
    • 1000万
    • 10000-10000
    • 1,00000 - Lakh
    • 100000-100000万
    • 100000-百万
    • 100000-千万

    …此后,阿拉伯人、哈拉布人、尼尔人等不在常规使用中。 事实上,即使是金融机构也遵循这一点:

    • 1亿-10亿
    • 1000,00,00000-1000亿
    • 10000,00,00000-10000千万
    • 100000万-100000亿(万亿)
    • 99,00000,00,00000-9990亿卢比(万亿)

    一旦超过这个数字,它们就可以方便地切换到百万/十亿/万亿/万亿。