`
h2626819
  • 浏览: 46075 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

常用的java函数(五)人民币转成大写

阅读更多
 /**
     * 人民币转成大写
     * 
     * @param value
     * @return String
     */
    public static String hangeToBig(double value)
    {
        char[] hunit = { '拾', '佰', '仟' }; // 段内位置表示
        char[] vunit = { '万', '亿' }; // 段名表示
        char[] digit = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; // 数字表示
        long midVal = (long) (value * 100); // 转化成整形
        String valStr = String.valueOf(midVal); // 转化成字符串

        String head = valStr.substring(0, valStr.length() - 2); // 取整数部分
        String rail = valStr.substring(valStr.length() - 2); // 取小数部分

        String prefix = ""; // 整数部分转化的结果
        String suffix = ""; // 小数部分转化的结果
        // 处理小数点后面的数
        if (rail.equals("00"))
        { // 如果小数部分为0
            suffix = "整";
        }
        else
        {
            suffix = digit[rail.charAt(0) - '0'] + "角" + digit[rail.charAt(1) - '0'] + "分"; // 否则把角分转化出来
        }
        // 处理小数点前面的数
        char[] chDig = head.toCharArray(); // 把整数部分转化成字符数组
        char zero = '0'; // 标志'0'表示出现过0
        byte zeroSerNum = 0; // 连续出现0的次数
        for (int i = 0; i < chDig.length; i++)
        { // 循环处理每个数字
            int idx = (chDig.length - i - 1) % 4; // 取段内位置
            int vidx = (chDig.length - i - 1) / 4; // 取段位置
            if (chDig[i] == '0')
            { // 如果当前字符是0
                zeroSerNum++; // 连续0次数递增
                if (zero == '0')
                { // 标志
                    zero = digit[0];
                }
                else if (idx == 0 && vidx > 0 && zeroSerNum < 4)
                {
                    prefix += vunit[vidx - 1];
                    zero = '0';
                }
                continue;
            }
            zeroSerNum = 0; // 连续0次数清零
            if (zero != '0')
            { // 如果标志不为0,则加上,例如万,亿什么的
                prefix += zero;
                zero = '0';
            }
            prefix += digit[chDig[i] - '0']; // 转化该数字表示
            if (idx > 0)
                prefix += hunit[idx - 1];
            if (idx == 0 && vidx > 0)
            {
                prefix += vunit[vidx - 1]; // 段结束位置应该加上段名如万,亿
            }
        }

        if (prefix.length() > 0)
            prefix += '圆'; // 如果整数部分存在,则有圆的字样
        return prefix + suffix; // 返回正确表示

分享到:
评论

相关推荐

    java 类 金额转换成大写

    Java 类金额转换成大写 在 Java 编程语言中,金额转换成大写是非常有用的功能,特别是在财务、银行、电子商务等领域中。下面我们来详细介绍如何使用 Java 实现金额转换成大写的功能。 实例代码分析 首先,我们来...

    java数字转人民币大写

    在Java编程中,将数字转换为人民币大写是常见的需求,尤其在财务系统或银行软件中,为了确保财务数据的准确性,通常会使用规范的汉字表示金额。人民币大写包括壹、贰、叁、肆、伍、陆、柒、捌、玖、零,以及整、元、...

    人民币小写转大写(Java 实现)

    * 将double形式的字符串(有两位小数或无小数)转换成人民币的大写格式 * @param doubleStr * @return String * @throws Exception */ public static String doChangeRMB(String doubleStr)throws ...

    数字转成人民币大写代码

    这段代码是用于将数字转换为中文大写的人民币表示方式,主要应用于财务软件或者与货币相关的程序中,...这个函数可以很好地将数字转换为中文大写形式,适用于需要展示人民币金额的场景,确保财务数据的清晰性和准确性。

    小写人民币转大写人民币

    首先,我们需要了解人民币大写的基本规则。人民币大写的表示方式如下: 1. 零:零 2. 一:壹 3. 二:贰 4. 三:叁 5. 四:肆 6. 五:伍 7. 六:陆 8. 七:柒 9. 八:捌 10. 九:玖 11. 十:拾 12. 百:佰 13. 千:...

    Java实现人民币大写+GUI界面

    总的来说,实现"Java实现人民币大写+GUI界面"这个功能,需要结合Java的基础语法、GUI编程以及对人民币大写转换规则的理解。通过创建一个能够正确处理各种情况的转换函数,并与用户友好的界面相结合,可以构建出一个...

    jsp页面人民币小写转大写

    5. 最后,将整数部分和小数部分组合起来,形成完整的人民币大写金额。 在JSP页面中,可以通过EL表达式(Expression Language)或者JSTL(JavaServer Pages Standard Tag Library)来调用这个函数,并将结果插入到...

    java实现将数字转换成人民币大写

    【Java实现将数字转换成人民币大写】的代码主要涉及了将数字转化为中文大写汉字的逻辑,这对于财务系统和报表生成来说是非常重要的功能。在Java中,这个过程可以通过自定义类来实现,例如创建一个名为`Rmb`的类。...

    人民币金额小写转换大写

    首先,我们需要了解人民币大写数字的基本规则。人民币的大写数字包括:壹、贰、叁、肆、伍、陆、柒、捌、玖、零。小写数字1到9分别对应大写的一到九,0对应零。此外,还有特殊字符如“元”、“整”等在金额转换中也...

    人民币数字变大写形式

    总结来说,"人民币数字变大写形式"的功能实现涉及Java的面向对象编程,字符串处理,条件判断,以及可能的数据结构如映射表。这个过程可以帮助开发者巩固基础,提高编程能力,对于实际工作中的财务软件开发也具有实用...

    jsp页面调用applet实现人民币的大小写转换.docx

    通过JSP页面调用Applet实现人民币的大小写转换,可以实时地将用户输入的金额转换为大写或小写形式。该实现方法可以应用于电子商务、银行等领域,提供了一个便捷的金额转换工具。 六、技术要点 * 使用JSP页面调用...

    金钱大写转数字类型,精确到分

    本文将详细探讨如何实现“金钱大写转数字类型,精确到分”的功能。 首先,我们需要理解汉字大写金额的构成。大写金额通常包括以下部分:零(零)、壹(1)、贰(2)、叁(3)、肆(4)、伍(5)、陆(6)、柒(7)...

    java 数字转化为人民币大写 (含源代码)

    在Java编程中,将阿拉伯数字转化为人民币大写是一种常见的需求,尤其在财务系统或报表生成中。本示例提供了一种实现方式,通过源代码来完成这个功能。下面我们将详细探讨这个过程,以及相关的知识点。 首先,我们...

    数字金额转大写金额(java,jsp)可以直接调用

    /* * 整数部分最多13位 * 调用方法: * 1.新建类 * 2.直接调用getRMB(String num)函数 * 3.返回大写金额 * */

    实现人民币大小写转换功能

    这个功能的主要目的是将用户输入的数字人民币金额转换成规范的汉字大写形式,以满足财务报告和审计的要求。以下是对这一功能的详细说明: 1. **输入处理**:首先,程序需要一个文本框供用户输入数字人民币金额。...

    java常用代码

    8. **人民币大写**:在财务应用中,将数字转换为大写的汉字表示是常见的需求。Java代码可能实现了这个功能,例如使用条件判断或映射表将数字转换成中文字符。 9. **访问XML**:Java通过`javax.xml`和`org.w3c.dom`...

    RMB-translation.rar_translation_人民币大写

    "RMB-translation.rar_translation_人民币大写"这个压缩包文件及其包含的"RMB translation.txt"文件,显然是一个用于实现这一功能的资源或代码示例。 人民币大写的转换涉及到汉字的使用,主要包括“壹”、“贰”、...

    人民币大小写转换类库

    1. **人民币大写规范**:在中国,财务报表和发票上的金额必须用中文大写来表示,以防止篡改数字,增强会计记录的清晰度和安全性。中文大写的数字包括零(零)、壹(1)、贰(2)、叁(3)、肆(4)、伍(5)、陆(6...

    上海交通银行JAVA笔试编程题

    1. **人民币金额数字转换成大写**: 在中国,财务报表中的金额通常需要用大写汉字表示,以防止篡改。这需要编写一个函数,将阿拉伯数字(如123456.78)转换为大写汉字(壹拾贰万叁仟肆佰伍拾陆元柒角捌分)。这涉及...

Global site tag (gtag.js) - Google Analytics