您现在的位置是:首页 > 文章详情文章详情

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

会飞的猪 2019-02-21 196人已围观

简介白码驿站是一个面向开发者的知识共享社区,专注于为开发者打造一个纯净的技术交流社区(源码下载,免费在线图片压缩,jquery插件,插件下载,JS/CSS在线压缩。)-白码驿站

                                        
/// <summary>
/// 金额转换成中文大写金额
/// </summary>
/// <param name="Money">需要转换的金额</param>
/// <returns></returns>
public static string MoneyToUpper(Double Money)
{
    string functionReturnValue = null;
    bool IsNegative = false; // 是否是负数
    string LowerMoney = Money.ToString();  //存储传进来的金额
    //判断传进来的金额是否是负数
    if (Money < 0)
    {
        // 是负数则先转为正数
        LowerMoney = (Money * -1).ToString();
        IsNegative = true;
    }
    string strLower = null;
    string strUpart = null;
    string strUpper = null;
    int iTemp = 0;
    // 保留两位小数 123.489→123.49  123.4→123.4
    LowerMoney = Math.Round(Convert.ToDouble(LowerMoney), 2).ToString();
    if (LowerMoney.IndexOf(".") > 0)
    {
        if (LowerMoney.IndexOf(".") == LowerMoney.Length - 2)
        {
            LowerMoney = LowerMoney + "0";
        }
    }
    else
    {
        LowerMoney = LowerMoney + ".00";
    }
    strLower = LowerMoney;
    iTemp = 1;
    strUpper = "";
    while (iTemp <= strLower.Length)
    {
        switch (strLower.Substring(strLower.Length - iTemp, 1))
        {
            case ".":
                strUpart = "圆";
                break;
            case "0":
                strUpart = "零";
                break;
            case "1":
                strUpart = "壹";
                break;
            case "2":
                strUpart = "贰";
                break;
            case "3":
                strUpart = "叁";
                break;
            case "4":
                strUpart = "肆";
                break;
            case "5":
                strUpart = "伍";
                break;
            case "6":
                strUpart = "陆";
                break;
            case "7":
                strUpart = "柒";
                break;
            case "8":
                strUpart = "捌";
                break;
            case "9":
                strUpart = "玖";
                break;
        }

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

        strUpper = strUpart + strUpper;
        iTemp = iTemp + 1;
    }

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

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

    if (IsNegative)
    {
        return "负" + functionReturnValue;
    }
    else
    {
        return functionReturnValue;
    }
}
                                


Tags: C#

很赞哦! (3)

文章评论

系统处理中...