`
neil_han
  • 浏览: 39137 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java-金额小数转换成中文大写金额

阅读更多
参照nndhyp的博客。
原文地址http://blog.csdn.net/nndhyp/article/details/7265971

财务系统应用较多
将金额小数转换成中文大写金额
如40330701101.2 ==>  肆佰零叁亿叁千零柒拾万壹千壹佰零壹元贰角
代码如下

/**
 * 金额小数转换成中文大写金额
 * @author Neil Han
 *	
 */
public class ConvertMoneyToUppercase {

	private static final String UNIT[] = { "万", "千", "佰", "拾", "亿", "千", "佰",
			"拾", "万", "千", "佰", "拾", "元", "角", "分" };

	private static final String NUM[] = { "零", "壹", "贰", "叁", "肆", "伍", "陆",
			"柒", "捌", "玖" };

	private static final double MAX_VALUE = 9999999999999.99D;

	/**
	 * 将金额小数转换成中文大写金额
	 * @param money
	 * @return result
	 */
	public static String convertMoney(double money) {
		if (money < 0 || money > MAX_VALUE)
			return "参数非法!";
		long money1 = Math.round(money * 100); // 四舍五入到分
		if (money1 == 0)
			return "零元整";
		String strMoney = String.valueOf(money1);
		int numIndex = 0; // numIndex用于选择金额数值
		int unitIndex = UNIT.length - strMoney.length(); // unitIndex用于选择金额单位
		boolean isZero = false; // 用于判断当前为是否为零
		String result = "";
		for (; numIndex < strMoney.length(); numIndex++, unitIndex++) {
			char num = strMoney.charAt(numIndex);
			if (num == '0') {
				isZero = true;
				if (UNIT[unitIndex] == "亿" || UNIT[unitIndex] == "万"
						|| UNIT[unitIndex] == "元") { // 如果当前位是亿、万、元,且数值为零
					result = result + UNIT[unitIndex]; //补单位亿、万、元
					isZero = false;
				} 
			}else {
				if (isZero) {
					result = result + "零";
					isZero = false;
				}
				result = result + NUM[Integer.parseInt(String.valueOf(num))] + UNIT[unitIndex];
			}
		}
		//不是角分结尾就加"整"字
		if (!result.endsWith("角")&&!result.endsWith("分")) {
			result = result + "整";
		}
		//例如没有这行代码,数值"400000001101.2",输出就是"肆千亿万壹千壹佰零壹元贰角"
		result = result.replaceAll("亿万", "亿");
		return result;
	}

	public static void main(String[] args) {
		double value = Double.parseDouble("40330701101.2");
		System.out.println("您输入的金额(小写)为:" + value);
		System.out.println("您输入的金额(大写)为:" + convertMoney(value));
	}

}



输出为:
您输入的金额(小写)为:4.03307011012E10
您输入的金额(大写)为:肆佰零叁亿叁千零柒拾万壹千壹佰零壹元贰角
分享到:
评论

相关推荐

    Java人民币金额数字转换成大写

    在 Java 中,将人民币金额数字转换成大写需要使用 HashMap 来存储中文数字和人民币金额的对应关系。例如,数字 1 对应中文数字 "壹",数字 2 对应中文数字 "贰",以此类推。 在 SimpleMoneyFormat 类中,我们首先...

    java 实现 金额转成中文大写形式

    在Java编程中,将金额的阿拉伯数字转换为中文汉字大写是常见的财务处理需求,主要用于防止数字篡改,增加财务数据的安全性和准确性。这个过程通常称为金额数字化,它涉及到将小数点、整数和小数部分分别转换,并且...

    人民币小写金额转大写金额(java版)

    本文将详细介绍一个Java程序,该程序用于将小写的人民币金额转换为大写形式。此转换主要用于财务、会计和其他正式场合,在这些场合中,大写金额是标准且必须的格式。此程序能够处理的金额范围最大支持到“仟万亿”,...

    Java编程-金额小写转大写

    在Java编程中,将金额小写转换为大写是一个常见的需求,特别是在财务系统或银行应用中,为了符合规范,金额通常需要以大写形式展示,防止因大小写混淆导致的错误。本文将深入探讨如何实现这个功能,并通过提供的`...

    数字金额转英文大写金额(包括小数)

    最好放在公共方法里,以便调用,定义String 类型接受返回的金额,调用参数为需要传入的金额

    JAVA实现阿拉伯数字金额转汉语大写.doc

    JAVA实现阿拉伯数字金额转汉语大写是指使用JAVA语言将阿拉伯数字金额转换为汉语大写格式的过程。该过程主要涉及到数字金额的处理和汉语大写格式的转换。 在该过程中,需要定义两个数组upChinese和upChinese2,分别...

    转换成中文大写金额

    6. **组合结果**:将转换后的整数部分、小数部分和单位组合成完整的中文大写金额。 在`MoneyUtil.java`和`MoneyFormat.java`这两个文件中,我们可以预见到定义了这些逻辑的函数和类。通过阅读源代码,我们可以学习...

    将用罗马数字表示的金额转化为中文大写表示

    本篇文章将详细讲解如何将用罗马数字表示的金额转化为中文大写表示,主要关注Java编程语言实现这一功能的方法。 首先,我们需要理解罗马数字的基本规则。罗马数字通常使用七个符号来表示数字:I(1)、V(5)、X...

    将阿拉伯数字转换为金额的汉字大写

    本文将深入探讨如何使用Java来实现阿拉伯数字到金额汉字大写的转换。 首先,我们需要了解金额汉字大写的基本规则。在中国,金额的汉字大写有特定的规则,例如1到10的汉字大写分别是壹、贰、叁、肆、伍、陆、柒、捌...

    java 数字转化为汉字大写

    在IT行业中,尤其是在编程领域,将数字转换为汉字大写是一项常见的需求,特别是在财务和会计系统中,因为中国的财务报表通常要求使用汉字大写来表示金额,以避免篡改和提高准确性。Java作为广泛使用的编程语言,提供...

    java写的将阿拉伯数字转化为中文金额的大写方式

    在Java编程中,将阿拉伯数字转化为中文金额大写是一项常见的任务,特别是在财务系统或报表生成中。这个题目要求实现一个程序,能够读取输入的阿拉伯数字字符串,然后将其转换为符合中国会计规范的中文大写金额表示。...

    java金额转大写

    在财务处理、票据填写等场景中,经常需要将阿拉伯数字表示的金额转换为汉字大写形式。这不仅可以提高正式文档的专业性,还可以避免因数字篡改而产生的纠纷。本知识点将详细介绍如何利用Java编程语言实现这一功能。 ...

    小写金额转大写

    在IT行业中,编程语言Java是广泛使用的,尤其在金融、财务等领域,经常需要将小写的金额转换为大写的汉字表示,以满足规范的财务报告需求。这个“小写金额转大写”的主题就涉及到这样的一个功能实现。在这个压缩包...

    java阿拉伯数字转大写金额+大写金额转阿拉伯数字

    在Java编程中,将阿拉伯数字转换为大写金额以及将大写金额转换回阿拉伯数字是常见的财务处理需求。这些操作通常用于财务报表、发票或银行系统中,以确保数据的准确性和一致性。以下是对这个主题的详细解释: 一、...

    java 金额大小写转换器

    金额转换涉及将数字转化为汉字大写的规则。例如,1234.56应该转换为“壹仟贰佰叁拾肆元伍角陆分”。这需要我们定义一个映射,将每一位数字对应到其汉字表示,同时处理特殊字符如"元"、"角"、"分"。可以创建一个Map...

    JAVA实现金额转换大写

    在IT行业中,尤其是在财务软件开发或者数据处理领域,经常需要将金额数字转换为大写汉字,以便于符合会计规范和防止篡改。Java作为一种广泛使用的编程语言,提供了丰富的字符串处理和字符操作功能,使得实现这样的...

    Java将数字金额转为大写中文金额

    Java程序实现数字金额转为大写中文金额,是一项常见的编程任务,尤其在金融行业以及需要处理财务数据的软件中应用广泛。其核心功能是将阿拉伯数字表示的金额转换成中文大写形式,以满足财务凭证、支票、合同等文档中...

    java金额转大小写很详细

    此程序的主要目的是为了在财务、会计等场景下能够准确地将数字形式的金额转换成汉字大写形式,这对于正式文件如发票、合同等非常重要。 ### 主要知识点 #### 1. **正则表达式的应用** - **`AMOUNT_PATTERN`**:...

    java数字转成大写金额

    小数都可以,这个真不错,赶紧下载来看看吧

Global site tag (gtag.js) - Google Analytics