数字转换为壹仟贰佰叁拾肆的Java方法

网银转帐时, 填写金额后下方出现的汉字金额, 这是Java下的实现.

    public static String toRMB(double money) {
        char[] s1 = {'零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'};
        char[] s4 = {'分', '角', '元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟', '万'};
        String str = String.valueOf(Math.round(money * 100 + 0.00001));
        String result = "";

        boolean zeroFlag = false;
        for (int i = 0; i < str.length(); i++) {
            int n = str.charAt(i) - '0';
            int level = str.length() - i - 1;
            if (n == 0) {
                zeroFlag = true;
                if (level % 4 == 2)
                    result += "" + s4[level];
            } else {
                if (zeroFlag) {
                    result += "零";
                    zeroFlag = false;
                }
                result += "" + s1[n] + s4[level];
            }
        }

        return result.replaceAll("亿万", "亿").replaceAll("元$", "元整");
    }

posted on   Milton  阅读(251)  评论(0编辑  收藏  举报

编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示