zoukankan      html  css  js  c++  java
  • c#将金额转换为大写,支持小数点,原创经典

    网上搜的都有问题,这个代码属于原创,代码简洁,支持小数点,若没有小数点,则为整

        /// <summary>
        /// 将金额转换成大写
        /// </summary>
        /// <param name="moneys">字符串金额</param>
        /// <returns></returns>
        public static string GetUpperMoney(string money)
        {
            int dotPos = money.IndexOf('.');//小数点位置
            string moneyRight = dotPos > -1 ? (money + "00").Substring(dotPos + 1, 2) : "";//小数部分
            if (dotPos > -1)
            {
                money = money.Substring(0, dotPos);//money取整
            }
            string rtnStr = "";
            string daxie = "元拾佰仟万亿";
            string daxieZ = "零壹贰叁肆伍陆柒捌玖";
            int moneyLen = money.Length;
            for (int i = 0; i < moneyLen; i++)
            {
                string nowStr = money.Substring(i, 1);
                string mn1 = daxieZ.Substring(Convert.ToInt32(nowStr), 1);
                int nowPos = moneyLen - i - 1;
                if (nowPos > 7)
                {
                    if (nowPos == 8)
                    {
                        nowPos = 5;
                    }
                    else
                    {
                        nowPos = nowPos % 9 + 1;
                    }
                }
                else if (nowPos > 4)
                {
                    nowPos = nowPos % 5 + 1;
                }
                string mn2 = daxie.Substring(nowPos, 1);
                rtnStr = rtnStr + mn1 + mn2;
            }
    
            rtnStr = rtnStr.Replace("零仟", "");
            rtnStr = rtnStr.Replace("零佰", "");
            rtnStr = rtnStr.Replace("零拾", "");
            rtnStr = rtnStr.Replace("零零零", "");
            rtnStr = rtnStr.Replace("零零", "");
            rtnStr = rtnStr.Replace("零万", "");
            rtnStr = rtnStr.Replace("零亿", "亿");
            if (dotPos > 0)
            {
                rtnStr = rtnStr + daxieZ.Substring(Convert.ToInt32(moneyRight.Substring(0, 1)), 1) + "";
                rtnStr = rtnStr + daxieZ.Substring(Convert.ToInt32(moneyRight.Substring(1, 1)), 1) + "";
            }
            else
            {
                rtnStr += "";
            }
            return rtnStr;
        }
  • 相关阅读:
    lianjie
    分享页(把末尾的JS函数换成这个)
    面试题:Java回形数组
    Keycloak暴力检测和OTP验证
    Mybatis 使用Spring boot AOP +自定义注解+PageHelper实现分页
    基于Keycloak权限管理服务的架构
    如何访问被Keycloak保护的后端API
    KeyCloak实战|Vue项目集成Keycloak
    LeetCode|788. Rotated Digits
    LeetCode|413. Arithmetic Slices
  • 原文地址:https://www.cnblogs.com/xuse/p/3592270.html
Copyright © 2011-2022 走看看