`
rayn115
  • 浏览: 70244 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java人民币小写转大写(小数点后只支持到分)

    博客分类:
  • Java
阅读更多
package com.resource.test;

import java.util.Scanner;
class DaXie //人民币小写转大写
{
public static void main(String[] args)
{
System.out.println("请输入您要转换的金额数: ");
int j=0;
Scanner shu=new Scanner(System.in);
double b=shu.nextDouble();
long f=(long)(b*100);
String [] a=new String []{"壹","贰","叁","肆","伍","陆","柒","捌","玖"};
String [] d=new String[]{"分","角","元","拾","百","千","万","十","百","千","亿","十","百","千","兆","十","百","千"};
String  c=new String(""+f);
System.out.println("\n转换后的金额为:\n");
for (int i=0;i<c.length();i++ )
{
if(c.charAt(i)!='0')
{   

System.out.print(a[c.charAt(i)-49]+d[c.length()-i-1]);
}
else
{
if (i-j>0)
{
if(c.length()-i==3)
{
System.out.print("元");
}
else
{
System.out.print("零");
    j=i;
    ++j;

}

}

}

}

}

}

/*==================================*/

/*网上找到的另一个例子,实现起来挺清晰的*/

/*===================================*/

package com.resource.test;

public class RMB { 
    public static void main(String[] args) { 
        String s = toUpper("123,456,789.55"); 
        System.out.println(s); 
    } 

    /**
    * 小写转换大写金额
    */
    public static String toUpper(String amount) { 
        StringBuffer result = new StringBuffer(""); 
        String[] tmp = amount.replaceAll(",", "").split("\\."); 
        String integer = tmp[0]; 
        final int LEN = integer.length(); 
        if (LEN > 12) { 
            throw new RuntimeException("太大了 ,处理不了啊!"); 
        } 
        for (int k = 12; k > LEN; k--) { 
            integer = "0" + integer; 
        } 
        int part1 = Integer.parseInt(integer.substring(0, 4)); 
        int part2 = Integer.parseInt(integer.substring(4,); 
        int part3 = Integer.parseInt(integer.substring(8, 12)); 

        if (part1 != 0) { 
            result.append(parseInt(part1) + "亿"); 
        } 

        if (part2 != 0) { 
            if(part2<1000) 
                result.append("零"); 
            result.append(parseInt(part2) + "万"); 
        }else{ 
            result.append("零"); 
        } 

        if (part3 != 0) { 
            if(part3<1000) 
                result.append("零"); 
            result.append(parseInt(part3)); 
        } 
        result.append("元"); 
        if (tmp.length == 2) { 
            result.append(parseFloat(tmp[1])); 
        } 
        return result.toString(); 
    } 

    /**
    * 解析四位整数转换为中文金额大写
    * 
    * @param sStr
    * @return
    */
    public static String parseInt(int i) { 
        String[] num = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; 
        String result = ""; 
        int tmp = i; 
        if (tmp / 1000 != 0) { 
            result += num[tmp / 1000] + "仟"; 
            tmp = tmp - (tmp / 1000) * 1000; 
        } 
        if (tmp / 100 != 0) { 
            result += num[tmp / 100] + "佰"; 
            tmp = tmp - (tmp / 100) * 100; 
        } 
        if (tmp / 10 != 0) { 
            result += num[tmp / 10] + "拾"; 
            tmp = tmp - (tmp / 10) * 10; 
        } 
        if (tmp != 0) 
            result += num[tmp]; 
        return result; 
    } 

    /**
    * 解析小数部分
    */
    public static String parseFloat(String sStr) { 
        String[] num = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "七", "捌", "玖" }; 
        String[] unit = { "角", "分" }; 
        String result = ""; 

        final int LEN = sStr.length(); 
        for (int i = 0; i < LEN; i++) { 
            String tmp = sStr.substring(i, i + 1); 
            int k = Integer.parseInt(tmp); 
            result += num[k] + unit[i]; 
        } 
        return result; 
    } 

分享到:
评论

相关推荐

    Java编程-金额小写转大写

    3. 小数点后每位数字也需要转换为大写,并且在某些情况下(如0.01)可能需要添加`角`、`分`等单位。 接下来,我们来看`GetAmount.java`文件中的代码。这段代码可能包含一个`getAmountToChinese`方法,该方法接收一...

    人民币小写转大写的程序.rar

    "人民币小写转大写的程序"就是一个这样的解决方案,用于将诸如“123456.78”这样的金额转换成对应的汉字表示,如“壹拾贰万叁仟肆佰伍拾陆元柒角捌分”。 这个程序通常会涉及以下知识点: 1. **字符串处理**:程序...

    jsp页面人民币小写转大写

    "jsp页面人民币小写转大写"这个话题就是其中之一。在处理金融数据时,为了保证准确性和规范性,通常会将金额从小写的阿拉伯数字转换为大写的汉字数字,这在财务报表、发票等正式文档中尤其常见。在JSP(JavaServer ...

    小写人民币转大写人民币

    在IT行业中,尤其是在财务软件开发或者自动化处理财务数据时,将小写人民币金额转换为大写人民币是一项常见的需求。这主要是因为在中国的财务规范中,正式的财务凭证和合同通常要求使用大写数字来表示金额,以防止...

    小写金额转大写

    这个“小写金额转大写”的主题就涉及到这样的一个功能实现。在这个压缩包文件中,很可能包含了一些Java代码示例,用于解决这个问题。 首先,我们要理解金额转换的基本规则。在中国,小写金额通常是指阿拉伯数字(如...

    基于java的人民币大写的转换

    在Java编程语言中,将人民币小写金额转换为大写是一项常见的需求,特别是在财务系统或者银行系统的开发中。人民币大写转换主要是为了满足会计规范,确保财务数据的准确性和规范性。下面,我们将深入探讨如何利用Java...

    小写数字转换大写数字

    对于小数部分,也有类似的转换规则,但通常只转换到分(即两位小数),且小数点用“点”或“圆点”表示。对于超过四位的大数,可能需要递归或循环处理,确保所有位数都被正确转换。 总的来说,小写数字转换大写数字...

    金钱大写转小写数字类java(精确到角)

    本节将详细探讨如何用Java编程语言实现一个精确到角的中文大写转小写数字的程序。 首先,我们需要了解中文大写数字与阿拉伯数字的对应关系: 1. 零:零 2. 一:壹 3. 二:贰 4. 三:叁 5. 四:肆 6. 五:伍 7. 六:...

    Android中数字转中文,金额转大写

    本文将深入探讨如何在Android环境中实现这一功能,包括数字转中文以及数字金额转大写,并且会涉及到口语化的转换。 首先,数字转中文主要是将阿拉伯数字(如1、2、3等)转换成中文数字(如一、二、三等)。在Java或...

    java金额转大小写很详细

    根据给定的信息,本文将详细解释一个Java程序如何实现金额数字到大写金额的转换功能。此程序的主要目的是为了在财务、会计等场景下能够准确地将数字形式的金额转换成汉字大写形式,这对于正式文件如发票、合同等非常...

    VB033-金额小写转为大写 源代码

    标题提到的"VB033-金额小写转为大写 源代码"是一个典型的实例,它涉及到将货币金额从通常的小写形式(如123456.78)转换成大写形式(如壹拾贰万叁仟肆佰伍拾陆元柒角捌分),这种转换在财务报告、发票和合同中非常...

    人民币转换(原代码)

    实现人民币小写转大写的程序,通常会分为以下几个步骤: 1. **输入验证**:确保输入的字符串只包含数字和可能的正负号,排除非数字字符。 2. **金额处理**:如果金额为负,前面加上“负”字;如果金额为零,直接...

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

    2. **格式化**:输入的数字需要进行预处理,包括检查是否符合人民币金额的格式,如不能有额外的非数字字符,小数点后最多两位等。如果输入不符合规范,程序应该给出错误提示。 3. **数字转大写**:转换的核心部分是...

    阿拉伯数字转换为中文小写数字

    在Android开发过程中,有时我们需要将阿拉伯数字(1, 2, 3...)转换成中文小写数字(一,二,三...),特别是在涉及到文化习惯或者用户界面本地化的时候,如书籍页码显示。这个任务涉及到字符串处理和字符映射,下面...

    大小写转换

    4. **小数部分转换**:如果存在小数部分,将其转换为大写数字,但通常只保留到"角"和"分"的单位。 5. **拼接单位**:在整数部分和小数部分后分别添加对应的单位,如"圆"和"角分"。 6. **添加货币符号**:根据需要,...

    大小金额转化

    Java版本的方法一中,通过定义两个静态字符串`_NumChinese`和`_UnitChinese`分别存储数字0至9的大写表示和单位(从分到亿),实现了小写金额到大写金额的转换。代码首先检查输入的数字是否小于或等于零,如果是,则...

    Digitizer.zip

    在标签“小写金额转大写”中,我们可以推测这个程序的核心功能就是实现这个转换。通常,这样的程序会包含以下几个关键部分: 1. **输入验证**:确保输入的金额符合规范,只包含数字和小数点,没有非法字符。 2. **...

    java编码基础练习题

    - 大写字母转小写字母,通过ASCII码的转换,大写字母与小写字母之间相差32。 8. **分页显示**: - 分页计算涉及到数学运算,如总页数的计算,需要用到取余和整除操作。 9. **逻辑判断语句**: - 判断数字奇偶性...

    JAVA笔记.txt

    Java支持两种类型的转换:自动类型转换和强制类型转换。 1. **自动类型转换** - 将表示数据范围较小的数值赋值给表示数据范围较大的变量。 - 示例:`double d = 10;` - 数据类型从小到大排序:`byte ;`char 。 ...

    java学习笔记.txt

    ### Java学习笔记知识点详解 #### 一、Java的常量 **定义:** - 常量是指在程序运行期间其值不可改变的量。 **分类:** 1. **字符串常量:** - 被双引号包围的字符串,例如`"hello world"`或空字符串`""`。 2. *...

Global site tag (gtag.js) - Google Analytics