.net c# 将金额转人名币大写金额

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

中文项目中,有些金额显示,需要使用到中文金额.

可以通过.net c#写的一个方法直接完成该功能

	/// <SUMMARY>
        /// 转换人民币大小金额
        /// </SUMMARY>
        /// <PARAM name="price">金额</PARAM>
        /// <RETURNS>返回大写形式</RETURNS>
        public string PriceToChina(decimal price)
        {
            string strnum = "零壹贰叁肆伍陆柒捌玖";            //0-9所对应的汉字
            string strchar = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字
            string strtake = "";    //从原num值中取出的值
            string strswi = "";    //数字的字符串形式
            string strprice = "";  //人民币大写金额形式
            int i;    //循环变量
            int j;    //num的值乘以100的字符串长度
            string ch1 = "";    //数字的汉语读法
            string ch2 = "";    //数字位的汉字读法
            int nzero = 0;  //用来计算连续的零值是几个
            int temp;            //从原num值中取出的值

            price = Math.Round(Math.Abs(price), 2);    //将num取绝对值并四舍五入取2位小数
            strswi = ((long)(price * 100)).ToString();        //将num乘100并转换成字符串形式
            j = strswi.Length;      //找出最高位
            if (j &gt; 15) { return "溢出"; }
            strchar = strchar.Substring(15 - j);   //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分

            //循环取出每一位需要转换的值
            for (i = 0; i &lt; j; i++)
            {
                strtake = strswi.Substring(i, 1);          //取出需转换的某一位的值
                temp = Convert.ToInt32(strtake);      //转换为数字
                if (i != (j - 3) &amp;&amp; i != (j - 7) &amp;&amp; i != (j - 11) &amp;&amp; i != (j - 15))
                {
                    //当所取位数不为元、万、亿、万亿上的数字时
                    if (strtake == "0")
                    {
                        ch1 = "";
                        ch2 = "";
                        nzero = nzero + 1;
                    }
                    else
                    {
                        if (strtake != "0" &amp;&amp; nzero != 0)
                        {
                            ch1 = "零" + strnum.Substring(temp * 1, 1);
                            ch2 = strchar.Substring(i, 1);
                            nzero = 0;
                        }
                        else
                        {
                            ch1 = strnum.Substring(temp * 1, 1);
                            ch2 = strchar.Substring(i, 1);
                            nzero = 0;
                        }
                    }
                }
                else
                {
                    //该位是万亿,亿,万,元位等关键位
                    if (strtake != "0" &amp;&amp; nzero != 0)
                    {
                        ch1 = "零" + strnum.Substring(temp * 1, 1);
                        ch2 = strchar.Substring(i, 1);
                        nzero = 0;
                    }
                    else
                    {
                        if (strtake != "0" &amp;&amp; nzero == 0)
                        {
                            ch1 = strnum.Substring(temp * 1, 1);
                            ch2 = strchar.Substring(i, 1);
                            nzero = 0;
                        }
                        else
                        {
                            if (strtake == "0" &amp;&amp; nzero &gt;= 3)
                            {
                                ch1 = "";
                                ch2 = "";
                                nzero = nzero + 1;
                            }
                            else
                            {
                                if (j &gt;= 11)
                                {
                                    ch1 = "";
                                    nzero = nzero + 1;
                                }
                                else
                                {
                                    ch1 = "";
                                    ch2 = strchar.Substring(i, 1);
                                    nzero = nzero + 1;
                                }
                            }
                        }
                    }
                }
                if (i == (j - 11) || i == (j - 3))
                {
                    //如果该位是亿位或元位,则必须写上
                    ch2 = strchar.Substring(i, 1);
                }
                strprice = strprice + ch1 + ch2;
                if (i == j - 1 &amp;&amp; strtake == "0")
                {
                    //最后一位(分)为0时,加上“整”
                    strprice = strprice + '整';
                }
            }
            if (price == 0) { strprice = "零元整"; }
            return strprice;
        }


 

附件:下载该文件资源,减少时间成本(增值服务)
金额转中文大写金额
通过源码,可直接运行查看效果
不商用,只限学习使用,使用后请删除
上传者拥有该资源完整版权,下载既表明已授权您可以进行报备商用,无报备或者使用后报备,视为侵权,报备后使用,为合法有效使用,报备方式,下载后,在下载列表,点击报备,填写使用场景即可
文件部分展示图(单击放大)
金额转中文大写金额金额转中文大写金额
留言
该资源可下载
File Source
.rar
70.14 KB
金额转中文大写金额金额转中文大写金额
最新结算
股权转让协议意向书模板
类型: .docx 金额: CNY 2.23¥ 状态: 待结算 详细>
股权转让协议意向书模板
类型: .docx 金额: CNY 0.28¥ 状态: 待结算 详细>
CSS3图片向上3D翻转渐隐消失特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3图片向上3D翻转渐隐消失特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
.net c# 将金额转人名币大写金额
类型: .rar 金额: CNY 2.39¥ 状态: 待结算 详细>
.net c# 将金额转人名币大写金额
类型: .rar 金额: CNY 0.3¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 2.23¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 0.28¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 2.23¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 0.28¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章