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;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值