将金额转换成繁体汉字

2024-03-27 16:18
文章标签 转换成 汉字 金额 繁体

本文主要是介绍将金额转换成繁体汉字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        /// <summary>
        /// 将金额转换成繁体汉字
        /// </summary>
        /// <param name="amount"></param>
        /// <returns></returns>
        private string ConvertAmountToChineseCharacters(string amount)
        {
            //标识是否是负数
            bool IsNegative = false;
            if (amount.Trim().Substring(0, 1) == "-")
            {
                //是负数则先转为正数
                amount = amount.Trim().Remove(0, 1);
                IsNegative = true;
            }
            string strAmount = string.Empty;
            string strMiddleware = string.Empty;
            string strChineseCharacter = string.Empty;
            int iTemp = 0;
            //保留两位小数
            amount = Math.Round(double.Parse(amount), 2).ToString();
            if (amount.IndexOf(".") > 0)
            {
                if (amount.IndexOf(".") == amount.Length - 2)
                {
                    amount = amount + "0";
                }
            }
            else
            {
                amount = amount + ".00";
            }
            strAmount = amount;
            iTemp = 1;
            strChineseCharacter = "";
            while (iTemp <= strAmount.Length)
            {
                switch (strAmount.Substring(strAmount.Length - iTemp, 1))
                {
                    case ".":
                        strMiddleware = "圆";
                        break;
                    case "0":
                        strMiddleware = "零";
                        break;
                    case "1":
                        strMiddleware = "壹";
                        break;
                    case "2":
                        strMiddleware = "贰";
                        break;
                    case "3":
                        strMiddleware = "叁";
                        break;
                    case "4":
                        strMiddleware = "肆";
                        break;
                    case "5":
                        strMiddleware = "伍";
                        break;
                    case "6":
                        strMiddleware = "陆";
                        break;
                    case "7":
                        strMiddleware = "柒";
                        break;
                    case "8":
                        strMiddleware = "捌";
                        break;
                    case "9":
                        strMiddleware = "玖";
                        break;
                }

                switch (iTemp)
                {
                    case 1:
                        strMiddleware = strMiddleware + "分";
                        break;
                    case 2:
                        strMiddleware = strMiddleware + "角";
                        break;
                    case 3:
                        strMiddleware = strMiddleware + "";
                        break;
                    case 4:
                        strMiddleware = strMiddleware + "";
                        break;
                    case 5:
                        strMiddleware = strMiddleware + "拾";
                        break;
                    case 6:
                        strMiddleware = strMiddleware + "佰";
                        break;
                    case 7:
                        strMiddleware = strMiddleware + "仟";
                        break;
                    case 8:
                        strMiddleware = strMiddleware + "万";
                        break;
                    case 9:
                        strMiddleware = strMiddleware + "拾";
                        break;
                    case 10:
                        strMiddleware = strMiddleware + "佰";
                        break;
                    case 11:
                        strMiddleware = strMiddleware + "仟";
                        break;
                    case 12:
                        strMiddleware = strMiddleware + "亿";
                        break;
                    case 13:
                        strMiddleware = strMiddleware + "拾";
                        break;
                    case 14:
                        strMiddleware = strMiddleware + "佰";
                        break;
                    case 15:
                        strMiddleware = strMiddleware + "仟";
                        break;
                    case 16:
                        strMiddleware = strMiddleware + "万";
                        break;
                    default:
                        strMiddleware = strMiddleware + "";
                        break;
                }

                strChineseCharacter = strMiddleware + strChineseCharacter;
                iTemp = iTemp + 1;
            }

            strChineseCharacter = strChineseCharacter.Replace("零拾", "零");
            strChineseCharacter = strChineseCharacter.Replace("零佰", "零");
            strChineseCharacter = strChineseCharacter.Replace("零仟", "零");
            strChineseCharacter = strChineseCharacter.Replace("零零零", "零");
            strChineseCharacter = strChineseCharacter.Replace("零零", "零");
            strChineseCharacter = strChineseCharacter.Replace("零角零分", "整");
            strChineseCharacter = strChineseCharacter.Replace("零分", "整");
            strChineseCharacter = strChineseCharacter.Replace("零角", "零");
            strChineseCharacter = strChineseCharacter.Replace("零亿零万零圆", "亿圆");
            strChineseCharacter = strChineseCharacter.Replace("亿零万零圆", "亿圆");
            strChineseCharacter = strChineseCharacter.Replace("零亿零万", "亿");
            strChineseCharacter = strChineseCharacter.Replace("零万零圆", "万圆");
            strChineseCharacter = strChineseCharacter.Replace("零亿", "亿");
            strChineseCharacter = strChineseCharacter.Replace("零万", "万");
            strChineseCharacter = strChineseCharacter.Replace("零圆", "圆");
            strChineseCharacter = strChineseCharacter.Replace("零零", "零");

            //对壹圆以下的金额的处理
            if (strChineseCharacter.Substring(0, 1) == "圆")
            {
                strChineseCharacter = strChineseCharacter.Substring(1, strChineseCharacter.Length - 1);
            }
            if (strChineseCharacter.Substring(0, 1) == "零")
            {
                strChineseCharacter = strChineseCharacter.Substring(1, strChineseCharacter.Length - 1);
            }
            if (strChineseCharacter.Substring(0, 1) == "角")
            {
                strChineseCharacter = strChineseCharacter.Substring(1, strChineseCharacter.Length - 1);
            }
            if (strChineseCharacter.Substring(0, 1) == "分")
            {
                strChineseCharacter = strChineseCharacter.Substring(1, strChineseCharacter.Length - 1);
            }
            if (strChineseCharacter.Substring(0, 1) == "整")
            {
                strChineseCharacter = "零圆整";
            }

            if (IsNegative == true)
            {
                return "负" + strChineseCharacter;
            }
            else
            {
                return strChineseCharacter;
            }
        }

这篇关于将金额转换成繁体汉字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/852699

相关文章

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

多重背包转换成0-1背包

http://acm.hdu.edu.cn/showproblem.php?pid=2191 多重背包特点: 一种物品有C个(既不是固定的1个,也不是无数个) 优化的方法: 运用神奇的二进制,进行物品拆分,转化成01背包 物品拆分,把13个相同的物品分成4组(1,2,4,6) 用这4组可以组成任意一个1~13之间的数! 原理:一个数总可以用2^

Prompt - 将图片的表格转换成Markdown

Prompt - 将图片的表格转换成Markdown 0. 引言1. 提示词2. 原始版本 0. 引言 最近尝试将图片中的表格转换成Markdown格式,需要不断条件和优化提示词。记录一下调整好的提示词,以后在继续优化迭代。 1. 提示词 英文版本: You are an AI assistant tasked with extracting the content of

将浮点型算式的中缀表达式转换成后缀表达式并算出式子结果

最近因为需要了解如何将在Win应用程序控制台输入的算式表达式转化成其后缀表达式的算法,所以在网上搜索了一下,看到许多人的程序都只是对应于运算数在0~9的范围内的整型运算式,所以自己就写了一个可以计算浮点型算式的程序,一下是运行时的截图: 式子中的a,b,c是可供用户自行输入的变量。 首先,我先对输入的运算符进行了简单的合法性判断,我的判断代 码如下: //函数的传入参

使用pyelftools把elf文件转换成s19文件

要使用pyelftools将ELF文件转换成S19文件格式,你需要首先安装pyelftools库,然后编写一个脚本来读取ELF文件,提取其中的代码和数据部分,并按照S19文件的格式生成对应的记录。 以下是一个简单的Python脚本示例,它演示了如何使用pyelftools将ELF文件转换为S19文件: import elftoolsfrom elftools.elf.elffile impo

手机上将mp4转换成amv怎么转?视频转换,3个方法拿捏

在这个社交媒体时代,视频已经成为人们传递信息、表达情感的重要方式之一。然而,不同的设备和平台对视频格式的要求不尽相同,这就需要我们不时地进行视频格式转换,以便在不同的场景中更好地展示和分享我们的作品。 对视频格式转换陌生的人来说,转码一直是个头疼的问题。近日,有读者向小编询问怎么在手机上将mp4转换成amv?别着急,今天小编就为大家介绍3种将mp4转换成amv的方法,从此以后看到格式转换也不用怕

安卓金币字符串转换成三位一个逗号的格式

DecimalFormat df1 = new DecimalFormat("###,###,###,##0.##");         return df1.format(Double.parseDouble(“ 17352208.25 ”)); 输出   17,352,208,25

如何简便的将List<Integer>转换成int[]?

使用Java 8的流(Streams)  ArrayList<Integer> list = new ArrayList<>();int[] intArray = list.stream().mapToInt(Integer::intValue).toArray();  若是maven项目可使用Apache Commons Lang库 <dependency> <groupId>

怎么将webp格式转换成jpg?这几种图片转换方法超级好用!

怎么将webp格式转换成jpg?WebP,这一较为边缘化的图像压缩技术,在实际应用中逐渐显现出其固有的局限,首要挑战便是其浏览器兼容性的不足,在多元化、全球化的网络生态中,这一短板尤为明显,用户常常面临因格式不支持而导致的分享与传播障碍,不得不采取迂回策略或依赖特定软件桥接这一鸿沟,更进一步,WebP图像编辑工具的稀缺,极大地限制了用户对其进行个性化编辑与创意发挥的空间,对于追求独特视觉表达和多样

linux下C连接mysql查询表信息汉字乱码问题

对于mysql C_API接口的查询问题,在查询之前需要设置读取数据库的编码格式,即在查询语句之前添加以下语句 mysql_query(connection, "set names utf8") 即在执行数据查询之前,要设置一下编码方式!