zoukankan      html  css  js  c++  java
  • 数字转化为英文字符串 递归算法即可

            /// <summary>
            /// 数字转化为英文字符串 递归算法即可
            /// </summary>
            /// <param name="number"></param>
            /// <returns></returns>
            static string NumberToEnglishString(int number) 
            {
                if (number < 0) //暂不考虑负数
                {
                    return "";
                }
                if (number < 20) //0到19
                {
                    switch (number)
                    {
                        case 0:
                            return "zero";
                        case 1:
                            return "one";
                        case 2:
                            return "two";
                        case 3:
                            return "three";
                        case 4:
                            return "four";
                        case 5:
                            return "five";
                        case 6:
                            return "sex";
                        case 7:
                            return "seven";
                        case 8:
                            return "eight";
                        case 9:
                            return "nine";
                        case 10:
                            return "ten";
                        case 11:
                            return "eleven";
                        case 12:
                            return "twelve";
                        case 13:
                            return "thirteen";
                        case 14:
                            return "fourteen";
                        case 15:
                            return "fifteen";
                        case 16:
                            return "sixteen";
                        case 17:
                            return "seventeen";
                        case 18:
                            return "eighteen";
                        case 19:
                            return "nineteen";
                        default:
                            return "";
                    }
                }
                if (number < 100) //20到99
                {
                    if (number % 10 == 0) //20,30,40,...90的输出
                    {
                        switch (number)
                        {
                            case 20:
                                return "twenty";
                            case 30:
                                return "thirty";
                            case 40:
                                return "forty";
                            case 50:
                                return "fifty";
                            case 60:
                                return "sixty";
                            case 70:
                                return "seventy";
                            case 80:
                                return "eighty";
                            case 90:
                                return "ninety";
                            default:
                                return "";
                        }
                    }
                    else //21.22,....99 思路:26=20+6
                    {
                        return string.Format("{0} {1}", NumberToEnglishString(10 * (number / 10)), 
                            NumberToEnglishString(number % 10));
                    }
                }
                if (number < 1000) //100到999  百级
                {
                    if (number % 100 == 0)
                    {
                        return string.Format("{0} hundred", NumberToEnglishString(number / 100));
                    }
                    else 
                    {
                        return string.Format("{0} hundred and {1}", NumberToEnglishString(number / 100), 
                            NumberToEnglishString(number % 100));
                    }
                }
                if (number < 1000000) //1000到999999 千级
                {
                    if (number % 1000 == 0)
                    {
                        return string.Format("{0} thousand", NumberToEnglishString(number / 1000));
                    }
                    else
                    {
                        return string.Format("{0} thousand and {1}", NumberToEnglishString(number / 1000), 
                            NumberToEnglishString(number % 1000));
                    }
                }
                if (number < 1000000000) //1000 000到999 999 999 百万级
                {
                    if (number % 1000 == 0)
                    {
                        return string.Format("{0} million", NumberToEnglishString(number / 1000000));
                    }
                    else
                    {
                        return string.Format("{0} million and {1}", NumberToEnglishString(number / 1000000), 
                            NumberToEnglishString(number % 1000000));
                    }
                }
                if (number <= int.MaxValue) //十亿 级
                {
                    if (number % 1000000000 == 0)
                    {
                        return string.Format("{0} billion", NumberToEnglishString(number / 1000000000));
                    }
                    else
                    {
                        return string.Format("{0} billion and {1}", NumberToEnglishString(number / 1000000000),
                            NumberToEnglishString(number % 1000000000));
                    }
                }
                return "";
            }
    

      

  • 相关阅读:
    使用ADO.NET2.0提升数据交互性能 DataSet 数据表
    AD域控制器所有使用的端口明细列表
    链接数据库 远程事务的处理方式
    根据权限动态生成菜单栏和工具栏
    FTP服务器配置(cmd中ftp命令)
    该操作未能执行,因为 OLE DB 提供程序SQLOLEDB无法启动分布式事务
    ChartLet GDI+中发生一般性错误
    SQL SERVER 2000用户sa 登录失败的解决办法
    .net实例:网站发布后,在IIS中浏览提示:无法找到该页...404错误。
    Winform 关闭应用程序
  • 原文地址:https://www.cnblogs.com/waw/p/8296665.html
Copyright © 2011-2022 走看看