数字转换成中文大小写、金额大小写

将数字转换成中文大小写、金额大小写 

        /// <summary>
        /// 将数字转换成中文大写
        /// </summary>
        /// <param name="Value">数字</param>
        /// <param name="bToUpper">是否转换成汉字大写 true表示大写 false表示小写</param>
        /// <param name="bMoney">是否转换成金额格式 true表示金额格式  false表示普通格式</param>
        /// <returns></returns>
        public static string DataConvert(double Value, bool bToUpper = true, bool bMoney = true)
        {
            if (Value == 0 || Value > 999999999999.99)
            {
                if (Value == 0 && !bMoney)
                {
                    return "零";
                }
                else
                {
                    return "";
                }
            }
            string str = Value.ToString("F2");
            string sLast = "";//小数点后面的数据
            string fuhao = "";//负号
            string[] Cnum = new string[10];
            string[] Cbit = new string[12];
            Cnum[0] = "零";
            Cnum[1] = (bToUpper ? "壹" : "一");
            Cnum[2] = (bToUpper ? "贰" : "二");
            Cnum[3] = (bToUpper ? "叁" : "三");
            Cnum[4] = (bToUpper ? "肆" : "四");
            Cnum[5] = (bToUpper ? "伍" : "五");
            Cnum[6] = (bToUpper ? "陆" : "六");
            Cnum[7] = (bToUpper ? "柒" : "七");
            Cnum[8] = (bToUpper ? "捌" : "八");
            Cnum[9] = (bToUpper ? "玖" : "九");
            Cbit[0] = "";
            Cbit[1] = (bToUpper ? "拾" : "十");
            Cbit[2] = (bToUpper ? "佰" : "百");
            Cbit[3] = (bToUpper ? "仟" : "千");
            Cbit[4] = "万";
            Cbit[5] = (bToUpper ? "拾" : "十");
            Cbit[6] = (bToUpper ? "佰" : "百");
            Cbit[7] = (bToUpper ? "仟" : "千");
            Cbit[8] = "亿";
            Cbit[9] = (bToUpper ? "拾" : "十");
            Cbit[10] = (bToUpper ? "佰" : "百");
            Cbit[11] = (bToUpper ? "仟" : "千");
            if (!bMoney)
            {
                string[] arrayValue = Value.ToString().Split(‘.‘);
                sLast = arrayValue.Length > 1 ? arrayValue[1] : "";
            }
            if (Value < 0)
            {
                str = str.ToString().Remove(0, 1);//去掉负号
                fuhao = "负";
            }
            int MaxLen = str.Length;
            bool zoo = true;
            bool Needzoo = false;
            bool HaveWan = false;
            bool HaveYi = false;
            int tmpVal = 0;
            string[] strBit = new string[MaxLen];
            string ConvertMoney = "";
            int i = 0;
            for (i = 0; i < MaxLen; i++)
            {
                if (i != 2)
                {
                    tmpVal = Convert.ToInt32(str.Substring(MaxLen - i - 1, 1));
                }
                switch (i)
                {
                    case 0:
                        if (bMoney)
                        {
                            if (tmpVal != 0)
                            {
                                strBit[i] = Cnum[tmpVal] + "分";
                            }
                        }
                        break;
                    case 1:
                        if (bMoney)
                        {
                            if (tmpVal != 0)
                            {
                                strBit[i] = Cnum[tmpVal] + "角";
                            }
                        }
                        break;
                    case 2:

                        break;
                    case 3:
                        if (tmpVal != 0)
                        {
                            strBit[i] = Cnum[tmpVal] + (bMoney ? (bToUpper ? "圆" : "元") : "");
                            zoo = false;
                        }
                        else
                        {
                            Needzoo = true;
                            if (MaxLen > 4)
                            {
                                strBit[3] = (bMoney ? (bToUpper ? "圆" : "元") : "");
                            }
                        }
                        if (strBit[1] == "" && strBit[0] != "" && strBit[3] != "")
                        {
                            strBit[i] = strBit[i] + "零";
                        }
                        break;
                    case 4:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "拾" : "十");
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 5:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "佰" : "百");
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 6:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "仟" : "千");
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 7:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + "万";
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                            HaveWan = true;
                        }
                        break;
                    case 8:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "拾" : "十");
                            if (!HaveWan)
                            {
                                strBit[i] = strBit[i] + "万";
                            }
                            HaveWan = true;
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 9:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "佰" : "百");
                            if (!HaveWan)
                            {
                                strBit[i] = strBit[i] + "万";
                            }
                            HaveWan = true;
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 10:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "仟" : "千");
                            if (!HaveWan)
                            {
                                strBit[i] = strBit[i] + "万";
                            }
                            HaveWan = true;
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 11:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + "亿";
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                            HaveYi = true;
                        }
                        break;
                    case 12:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "拾" : "十");
                            if (!HaveYi)
                            {
                                strBit[i] = strBit[i] + "亿";
                            }
                            HaveYi = true;
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 13:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "佰" : "百");
                            if (!HaveYi)
                            {
                                strBit[i] = strBit[i] + "亿";
                            }
                            HaveYi = true;
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                    case 14:
                        if (tmpVal == 0)
                        {
                            Needzoo = true;
                        }
                        else
                        {
                            strBit[i] = Cnum[tmpVal] + (bToUpper ? "仟" : "千");
                            if (!HaveYi)
                            {
                                strBit[i] = strBit[i] + "亿";
                            }
                            HaveYi = true;
                            if (Needzoo)
                            {
                                if (zoo)
                                {
                                    strBit[i] = (strBit[3] == "" ? strBit[i] + (bMoney ? (bToUpper ? "圆" : "元") : "") : strBit[i]);
                                }
                                else
                                {
                                    strBit[i] = strBit[i] + "零";
                                }
                            }
                            zoo = false;
                            Needzoo = false;
                        }
                        break;
                }
            }
            str = "";
            for (i = MaxLen - 1; i >= 0; i--)
            {
                str = str + strBit[i];
            }
            if (bMoney)
            {
                ConvertMoney = (str.Contains("分") ? fuhao + str : fuhao + str + "整");
            }
            else
            {
                if ((int)Value == 0)
                {
                    str = "零";
                }
                if (sLast.Length > 0)
                {
                    if (Convert.ToInt32(sLast) > 0)
                    {
                        str = str + "点";
                        for (i = 0; i < sLast.Length; i++)
                        {
                            str = str + Cnum[Convert.ToInt32(sLast.Substring(i, 1))];
                        }
                    }
                }
                ConvertMoney = fuhao + str;
            }
            return ConvertMoney;
        }

原文地址:https://www.cnblogs.com/xbzsz/p/8436706.html

时间: 2024-07-30 14:11:18

数字转换成中文大小写、金额大小写的相关文章

在C#中将数字转换成中文

上篇我们讲了在MSSQL中将数字转换成中文,这篇我们讲讲在C#中将数字转换成中文 下篇将讲一下如何将金额转换成中文金额,废话不多说,具体代码如下: /// <summary> /// 数字转中文 /// </summary> /// <param name="number">eg: 22</param> /// <returns></returns> public string NumberToChinese(in

在MSSQL中将数字转换成中文

具体代码如下: CREATE FUNCTION [dbo].[fn_NumberToChinese] (@number INT) RETURNS VARCHAR(20) AS BEGIN DECLARE @res VARCHAR(20); DECLARE @str VARCHAR(10); DECLARE @char CHAR(1); SET @res = ''; SET @str = CAST(@number AS VARCHAR); SET @char = SUBSTRING(@str, 1

数字转换成中文汉字数字

1 class Student { 2 static String[] ss = new String[]{"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; 3 static String[] mm = new String[]{"仟",

PHP 数字金额转换成中文大写金额的函数 数字转中文

/** *数字金额转换成中文大写金额的函数 *String Int $num 要转换的小写数字或小写字符串 *return 大写字母 *小数位为两位 **/ function num_to_rmb($num){ $c1 = "零壹贰叁肆伍陆柒捌玖"; $c2 = "分角元拾佰仟万拾佰仟亿"; //精确到分后面就不要了,所以只留两个小数位 $num = round($num, 2); //将数字转化为整数 $num = $num * 100; if (strlen($

在C#中将金额转换成中文大写金额

具体代码如下: /// <summary> /// 金额转换成中文大写金额 /// </summary> /// <param name="LowerMoney">eg:10.74</param> /// <returns></returns> public static string MoneyToUpper(string LowerMoney) { string functionReturnValue = nu

中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八--&gt;12345678)

昨天老大问我又没有写过中文数字转换成阿拉伯数字,我说没有,我说那应该简单啊,就是将中文对应的数字换成阿拉伯数字就好了啊,比如一就换成1,二就换成2…十换成10.可是那么问题来了…… 一十二呢…不能是1102吧…这不就坑爹了吗?一百万呢………所有我苦苦思索,花费了我差不多半天的时间,终于写出了下面的程序. 1 public static void main(String[] args){ 2 3 Map<Character, String> numberMap = new HashMap<

oracle改进之将阿拉伯数字转换成中文数字

本博客是自己在学习和工作途中的积累与总结. 将阿拉伯数字转换成中文汉字,方法自定义函数 create or replace function formate(val in number) return varchar2 is res varchar2(6); begin if val=1 then res:='一'; elsif val=2 then res:='二'; elsif val=3 then res:='三'; elsif val=4 then res:='四'; elsif val

把man手册转换成中文

1  *  Copyright (c) 2012级, 烟台大学计算机学院 2  *  All rights reserved. 3  *  作者:付记超 4  *  完成日期:2015 年 6 月 6 日 5  *  版 本 号:v1.0 6  *  学习主题:把man手册转换成中文 7  *  使用环境:红帽5.8 8  *  使用好处: 9  *  使用时间: 10 *  如何使用: 11 *  学习内容:安装man-pages中文手册包 欢迎指正 QQ:2272172668  Email:

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

package Demo;public class Money{ public static void main(String args[]) { Money mon = new Money(); System.out.println(mon.change("124")); } //把"1"转化成1时用下标找TOBIG[1]就是对应的 private static final String[] TOBIG = new String[] { "零"