必威体育Betway必威体育官网
当前位置:首页 > IT技术

C#、winfrom设置金额数字大小写转换

时间:2019-08-11 21:41:03来源:IT技术作者:seo实验室小编阅读:54次「手机版」
 

数字大小写转换

C#、winfrom金额数字大小写转换

作者:张国军_Suger

开发工具与关键技术:Visual Studio 2015、C#、.NET、winfrom

很多时候我们比如金额就需要对数字的小写转换成大写模式,因此我查找了归纳了如下方法,希望能帮到小伙伴。

实现截图:

C#金额数字小写转大写C#金额数字小写转大写

实现代码

#region 数字小写转大写
public static string CNumToCh(string X)
{
    //数字转换为中文后的数组 
    string[] num = new string[]
    {
        "零", "壹", "贰", "叁", "肆",
        "伍", "陆", "柒", "捌", "玖"
    };
    //为数字位数建立一个位数组 
    string[] digit = new string[]
    {
        "", "拾", "佰", "仟"
    };
    //为数字单位建立一个单位数组 
    string[] units = new string[]
    {
        "", "万", "亿", "万亿"
    };
    string returnValue = ""; //返回值 
    int finger = 0; //字符位置指针 
    int m = X.Length % 4; //取模 
    int k = 0;
    if (m > 0)
    {
        k = X.Length / 4 + 1;
    }
    else
    {
        k = X.Length / 4;
    }
    //外层循环,四位一组,每组最后加上单位: ",万亿,",",亿,",",万," 
    for (int i = k; i > 0; i--)
    {
        int L = 4;
        if (i == k && m != 0)
            L = m;
        //得到一组四位数 
        string four = X.substring(finger, L);
        int l = four.Length;
        //内层循环在该组中的每一位数上循环  
        for (int j = 0; j < l; j++)
        {
            //处理组中的每一位数加上所在的位 
            int n = Convert.ToInt32(four.Substring(j, 1));
            if (n == 0)
            {
                if (j < l - 1
                    && Convert.ToInt32(four.Substring(j + 1, 1)) > 0
                    && !returnValue.EndsWith(num[n]))
                {
                    returnValue += num[n];
                }
            }
            else
            {
                if (!(n == 1
                && (returnValue.EndsWith(num[0]) | returnValue.Length == 0)
                && j == l - 2))
                {
                    returnValue += num[n];
                    returnValue += digit[l - j - 1];
                }
            }
        }
        finger += L;
        //每组最后加上一个单位:",万,",",亿," 等 
        if (i < k) //如果不是最高位的一组 
        {
            if (Convert.ToInt32(four) != 0)
            {
                //如果所有4位不全是0则加上单位",万,",",亿,"等 
                returnValue += units[i - 1];
            }
        }
        else
        {
            //处理最高位的一组,最后必须加上单位 
            returnValue += units[i - 1];
        }
    }
    returnValue += "万元整";
    return returnValue;
}
#endregion

相关阅读

C#连接数据库时Appsettings 与connectionStrings的区

一、.Appsettings与connectionStrings的区别,它俩都是App.config中的两个元素;AppSettings是ASP.NET1.1时期用的,在.NET Framework

C#Socket通信原理(基础篇)

这几天博主花了4天时间去学习,整理Socket通信。大致懂了一点,现在我来总结一下关于C#Socket通信的原理首先我们要知道网络中的进程

c# 按质量压缩比压缩图片

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System

C#编程规范

http://www.cnblogs.com/sntetwt/archive/2011/03/26/1996055.htmlC#编程规范第一章 概述. 5术语定义. 5Pascal 大小写. 5Camel

C# WinForm PropertyGrid用法

关于C# PropertyGrid的用法没有找到,找到一个C++的用法。模仿着使用了一下,感觉挺不错,分享一下。基本用法:拖个PropertyGrid,绑定一个

分享到:

栏目导航

推荐阅读

热门阅读