`
ynky1026
  • 浏览: 5849 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

c#实现的阿拉伯数字转大写汉字金额

c# 
阅读更多
初学c# 请多指教

废话没有 直接上代码

//将阿拉伯数字转成大写中文
        public static string num2String(double num)
        {
            if (num >= 1000000000)
            {
                Console.WriteLine("num is too large");
                return "";
            }
            string result = "";
            string front = "";//整数部分
            string back = "";//小数部分
            string[] num_strs = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };//大写数字数组
            string[] num_dw = { "", "拾", "佰", "仟", "万", "拾万", "佰万", "仟万", "亿" };//大写数字单位数组
            string[] money_dw = { "分", "角", "圆" };//人民币单位数组
            string str_num = num.ToString();
            string[] strs = str_num.Split('.');
            if (num < 0)//负数的话
            {
                result += "负";
                str_num = str_num.Replace("-", "");
            }

            int num_f = 0;//整数部分
            int num_back = 0;//小数部分

            if (strs.Length == 2)
            {
                front = strs[0];
                back = strs[1];

                num_f = Convert.ToInt32(front);
                num_back = Convert.ToInt32(back);


            }
            else
            {
                front = num.ToString();
                num_f = Convert.ToInt32(front);
            }

            for (int i = 8; i >= 0; i--)//从八个0 就是亿开始
            {
                string cs = "1";//除数
                for (int j = 1; j <= i; j++)//除数补零
                {
                    cs += "0";
                }
                int num_cs = Convert.ToInt32(cs);
                int s = num_f / num_cs;//商
                if (s == 0)//商为0意味着除数没有这么大 直接跳到下一次循环
                {
                    continue;
                }
                else
                {
                    result += num_strs[s] + num_dw[i];//针对这一位生成结果
                    num_f = num_f % num_cs;//整数部分重新赋值成余数继续循环
                }
            }
            result += money_dw[2];//整数位添加货币单位
            //以下针对结果进行处理使之合理化
            //循环加零 如2003 不处理将是两千三圆 处理后为两千零三圆
            //算法为在数字单位数组中从佰开始遍历(第三位)找结果字符串中是否含有它的上一位 如没有则需在此单位的下一位置加入一个“零”
            for (int i = 2; i < num_dw.Length; i++)
            {
                if (result.IndexOf(num_dw[i]) == -1)
                {
                    continue;
                }

                if (result.IndexOf(num_dw[i - 1]) == -1)
                {
                    result = result.Insert(result.IndexOf(num_dw[i]) + 1, "零");
                }
            }
            //以下处理多出的“万” 如出现二十万两万。。。应为二十二万
            //算法为保留最后出现的万字 其他去掉
            string[] strs1 = result.Split('万');
            result = "";
            //以万字拆分字符串后 遍历结果数组 在结果数组的前一位加上万字
            for (int i = 0; i < strs1.Length; i++)
            {
                result += strs1[i];
                if (i == strs1.Length - 2)
                {
                    result += "万";
                }

            }
            //以下处理录入0时 直接生成零圆
            if (result == money_dw[2])
            {
                result = "零" + money_dw[2];
            }

            //小数部分处理
            if (back != null && back != "")
            {
                if (back.Length > 2)//只截取前两位 到分 在小的无货币单位支持 没有意义
                {
                    back = back.Substring(0, 2);
                }
                num_back = Convert.ToInt32(back);

                int s = num_back / 10;
                int ys = num_back % 10;
                if (s == 0)//只有角一位
                {
                    result += (num_strs[ys] + money_dw[1]);
                }
                else
                {
                    result += (num_strs[s] + money_dw[1] + num_strs[ys] + money_dw[0]);
                }
            }

            return result;
        }
分享到:
评论

相关推荐

    使用C#实现阿拉伯数字到大写中文的转换

    在编程领域,尤其是在开发财务软件或者处理金融数据时,经常需要将阿拉伯数字转换为大写中文数字,因为中文大写数字在正式的财务报表中是常见的格式。本篇将详细介绍如何使用C#语言来实现这一功能,以满足业务需求。...

    将阿拉伯数字转换为汉字数字或者汉字大写金额

    1、该dll能将阿拉伯数字转换为汉字数字或者中文大写金额。例如1234567.07可转换为: “一百二十三万四千五百六十七点零七”或“壹佰贰拾叁万肆仟伍佰陆拾柒圆零柒分”。 目前支持正负千亿以内(整数部分不超过12位)...

    将数字转换为大写(C#)

    在编程领域,尤其是在C#语言中,有时我们需要将阿拉伯数字(即我们日常使用的1, 2, 3等)转换为其对应的中文大写形式。这通常在财务或会计软件中非常常见,因为中国传统的财务记录习惯使用中文大写数字来避免欺诈...

    c# 将数字转换为大写

    在这个压缩包文件"Class_ZhH"中,我们可以推测它可能包含了一个C#类或方法,用于处理中文数字到大写汉字的转换。由于未提供具体的代码,这里我将提供一个通用的思路: 1. 创建一个字典,键为小写中文数字字符串,值...

    阿拉伯数字转换成中文大写的算法(C#窗体程序)

    在本文中,我们将深入探讨如何使用C#编程语言创建一个窗体应用程序,该程序能够将输入的阿拉伯数字转换为中文大写。这个功能在财务报表、发票和其他需要以中文大写表示金额的场合非常有用。 首先,我们看到程序的...

    阿拉伯数字转换为中文大写数字

    环境:vs2005 C# 功能:阿拉伯数字转换为中文大写数字

    C#中将数字金额转化为大写金额

    在日常财务处理、票据填写等场景中,经常需要将阿拉伯数字表示的金额转换成汉字大写形式,特别是在中国的财务领域中更是如此。这种转换通常是为了确保金额的准确性和防止篡改。本文将详细介绍如何在C#中实现这一功能...

    c#实现大小写金额转换

    在C#中实现大小写金额转换的核心在于将阿拉伯数字转换为中文大写数字,并适当地添加单位如“元”、“角”、“分”。此外,还需处理小数部分,确保转换后的文本格式正确,符合中文财务规范。 #### 核心逻辑解析 1. *...

    C#数字转大写(金额)

    这涉及到将阿拉伯数字转化为中文数字,同时考虑到中国的货币表示习惯,如分隔位、千位分节以及添加“元”、“角”、“分”的单位。在描述中提到的代码可能并不简洁,但我们可以探讨一种更优化的实现方式。 首先,...

    数字转汉字大写

    在IT行业中,尤其是在财务软件开发或者数据处理领域,将阿拉伯数字转换为汉字大写是一种常见的需求,主要用于确保财务数据的准确性和防止篡改。标题"数字转汉字大写"所指的就是这一技术应用,它主要涉及到字符串处理...

    C#数字转大写。重铸优化版(dll类库)

    重铸优化版(dll类库)”是一个专注于阿拉伯数字到中文大写转换的工具,适用于需要此功能的C#项目。它支持大范围的整数和小数转换,遵循传统的中国计数规则,通过DLL文件提供服务,方便开发者集成到他们的应用程序中。...

    C#如何将商品金额小写转换成大写(C# .net)

    本篇文章将详细介绍如何在C# .NET环境下,将商品金额的小写阿拉伯数字转换为大写汉字。 首先,我们需要了解汉字数字的基本对应关系。在中文中,小写阿拉伯数字(0-9)与大写汉字数字的对应如下: 1. 0 对应 "零" 2...

    小写数字转换大写数字

    这通常涉及到将阿拉伯数字(小写)转化为汉字大写,以便于财务报告、发票和正式文档的清晰性和准确性。在中文环境中,大写数字可以避免因为手写或打印不清造成的误解,提高财务凭证的可读性。 小写数字转换为大写...

    C#人名币大写转换C#人名币大写转换C#人名币大写转换

    首先,我们需要定义一个字典,将阿拉伯数字映射到对应的中文大写数字。接着,通过字符串处理,将输入的数字拆分为整数部分和小数部分,分别进行转换。最后,将两个部分合并并添加相应的货币单位。 以下是一个简单的...

    C#大写金额转换

    在中文中,小写金额通常使用阿拉伯数字表示,例如"1234.56",而大写金额则使用汉字字符,如"壹仟贰佰叁拾肆元伍角陆分"。转换过程中,每个数字都需要对应到相应的汉字。 在C#中,我们可以创建一个字典或者枚举来...

    数字转换成金额大写汉字

    在给定的文件"数字转大写金额.exe"可能就是一个这样的工具,它可以接受数字输入并返回大写汉字金额。在编程中,我们通常会使用字符串处理和条件判断来实现这个功能,对于不同语言(如Python、Java、C#等)会有不同的...

    C#商品金额大小写转换

    在C#编程中,将商品金额的阿拉伯数字转换为汉字大写形式,是...了解以上知识点后,你可以编写一个C#函数,实现将输入的阿拉伯数字金额转换为汉字大写。记得在实现过程中充分考虑各种情况,以保证转换的准确性和可靠性。

    人民币大写金额转数字源码

    本文将详细讲解如何实现“人民币大写金额转数字”的算法,主要基于C#编程语言。 首先,我们需要了解人民币大写金额的基本规则。人民币大写金额由“零”、“壹”、“贰”、“叁”、“肆”、“伍”、“陆”、“柒”、...

    金额大写转换程序C#

    这就是"金额大写转换程序C#"的目的,它能够自动将阿拉伯数字格式的金额转换成大写汉字形式,以防止因为手写或打印错误导致的误解。 在C#中实现这个功能,主要涉及以下几个关键知识点: 1. 字符串操作:首先,我们...

Global site tag (gtag.js) - Google Analytics