c#的输入数字自动转为人民币大写的方法

c#的输入数字自动转为人民币大写的方法

public static string ConvertRMB(double amount)
{
    string[] units = { "", "拾", "佰", "仟", "万", "拾万", "佰万", "仟万", "亿", "拾亿", "佰亿", "仟亿" };
    string[] digits = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
    string[] rmb = { "元", "角", "分" };
    string result = "";
    int i = 0;
    while (amount > 0)
    {
        int digit = (int)(amount % 10);
        if (digit > 0)
        {
            result = digits[digit] + units[i] + result;
        }
        else
        {
            if (result.Length > 0 && result[0] != '零')
            {
                result = digits[digit] + result;
            }
        }
        amount /= 10;
        i++;
    }
    if (result.Length == 0)
    {
        result = "零元整";
    }
    else
    {
        result += rmb[0];
        if (result[0] == '壹' && result.Length > 1)
        {
            result = result.Substring(1);
        }
        for (int j = 1; j < rmb.Length; j++)
        {
            int digit = (int)(amount * 10) % 10;
            result += digits[digit] + rmb[j];
            amount *= 10;
        }
        if (result.EndsWith("零角"))
        {
            result = result.Substring(0, result.Length - 2);
        }
        if (result.EndsWith("零分"))
        {
            result = result.Substring(0, result.Length - 2);
        }
        if (result.EndsWith("零元"))
        {
            result = result.Substring(0, result.Length - 2) + "整";
        }
    }
    return result;
}

你可能感兴趣的:(c#,java,开发语言)