`
竹临仙
  • 浏览: 37849 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

人民币

阅读更多
package com.util;

public class RMB {

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

/**
* 将数字型货币转换为中文型货币 <br/> 作者:wallimn 时间:2009-4-10 下午09:59:26<br/>
* 博客:http://blog.csdn.net/wallimn<br/> 参数:<br/>
*
* @param moneyValue
*             字符串形式的金额,小数部分,将多于3位部分舍去,不做四舍五入
* @return
*/
public static String CNValueOf(String moneyValue) {
// 使用正则表达式,去除前面的零及数字中的逗号
String value = moneyValue.replaceFirst("^0+", "");
value = value.replaceAll(",", "");
// 分割小数部分与整数部分
int dot_pos = value.indexOf('.');
String int_value;
String fraction_value;
if (dot_pos == -1) {
int_value = value;
fraction_value = "00";
} else {
int_value = value.substring(0, dot_pos);
fraction_value = value.substring(dot_pos + 1, value.length())
+ "00".substring(0, 2);// 也加两个0,便于后面统一处理
}

int len = int_value.length();
if (len > 16)
return "值过大";
StringBuffer cn_currency = new StringBuffer();
String[] CN_Carry = new String[] { "", "万", "亿", "万" };
// 数字分组处理,计数组数
int cnt = len / 4 + (len % 4 == 0 ? 0 : 1);
// 左边第一组的长度
int partLen = len - (cnt - 1) * 4;
String partValue = null;
boolean bZero = false;// 有过零
String curCN = null;
for (int i = 0; i < cnt; i++) {
partValue = int_value.substring(0, partLen);
int_value = int_value.substring(partLen);
curCN = Part2CN(partValue, i != 0 && !"零".equals(curCN));
// System.out.println(partValue+":"+curCN);
// 若上次为零,这次不为零,则加入零
if (bZero && !"零".equals(curCN)) {
cn_currency.append("零");
bZero = false;
}
if ("零".equals(curCN))
bZero = true;
// 若数字不是零,加入中文数字及单位
if (!"零".equals(curCN)) {
cn_currency.append(curCN);
cn_currency.append(CN_Carry[cnt - 1 - i]);
}
// 除最左边一组长度不定外,其它长度都为4
partLen = 4;
partValue = null;
}
cn_currency.append("元");
// 处理小数部分
int fv1 = Integer.parseInt(fraction_value.substring(0, 1));
int fv2 = Integer.parseInt(fraction_value.substring(1, 2));
if (fv1 + fv2 == 0) {
cn_currency.append("整");
} else {
cn_currency.append(CN_Digits[fv1]).append("角");
cn_currency.append(CN_Digits[fv2]).append("分");
}
return cn_currency.toString();
}

/**
* 将一组数字(不多于四个)转化成中文表示 <br/> 作者:wallimn 时间:2009-4-11 下午07:41:25<br/>
* 博客:http://wallimn.iteye.com<br/> 参数:<br/>
*
* @param partValue
*            字符串形式的数字
* @param bInsertZero
*            是否在前面添加零
* @return
*/
private static String Part2CN(String partValue, boolean bInsertZero) {
// 使用正则表达式,去除前面的0
partValue = partValue.replaceFirst("^0+", "");
int len = partValue.length();
if (len == 0)
return "零";
StringBuffer sbResult = new StringBuffer();
int digit;
String[] CN_Carry = new String[] { "", "拾", "佰", "仟" };
for (int i = 0; i < len; i++) {
digit = Integer.parseInt(partValue.substring(i, i + 1));
if (digit != 0) {
sbResult.append(CN_Digits[digit]);
sbResult.append(CN_Carry[len - 1 - i]);
} else {
// 若不是最后一位,且下不位不为零,追加零
if (i != len - 1
&& Integer.parseInt(partValue.substring(i + 1, i + 2)) != 0)
sbResult.append("零");
}
}
if (bInsertZero && len != 4)
sbResult.insert(0, "零");
return sbResult.toString();
}

// public static void main(String[] args){
// System.out.println(CNValueOf("1090"));
// }

}
分享到:
评论

相关推荐

    MATLAB人民币识别系统

    《MATLAB人民币识别系统》是基于MATLAB开发的一款软件应用,其主要目的是通过图像处理和机器学习技术,实现对人民币的自动识别。MATLAB作为一款强大的科学计算与数据分析工具,被广泛应用于各种工程和科研领域,包括...

    python实现人民币大写转换

    本文实例为大家分享了python实现人民币大写转换的具体代码,供大家参考,具体内容如下 #!/usr/bin/python # -*- coding:utf-8 -*- # ********* 转换方法介绍 ********* # 将需要转换的数字从右向左,每4位分成一个...

    人民币的简单计算综合练习题学习教案.pptx

    这篇文档是针对人民币计算的学习教案,适合初学者或者小学生进行人民币基本运算的训练。教案包含了各种人民币单位的转换和加减运算,以下是其中涉及的知识点: 1. **人民币单位及其转换**: - 1元等于10角,1角...

    小学一年级数学认识人民币练习题及综合试卷.doc

    1. 人民币的基本单位:人民币的单位有元、角、分。这是人民币的三个基本面额。 2. 常见的人民币面额:对于元的面额,有1元、2元、5元、10元、20元、50元和100元。对于角的面额,有1角、2角和5角。 3. 面值关系:1...

    一年级人民币换算练习题(4套).pdf

    人民币是中国的法定货币,对于一年级的孩子来说,理解人民币的基本换算和使用是非常重要的数学基础知识。在这些练习题中,主要涉及了以下几个知识点: 1. **人民币的单位**:人民币的单位包括元、角和分。元是最大...

    跨境业务人民币结算收款说明.pdf

    跨境业务人民币结算收款说明是针对企业或个人在进行跨国交易时,如何以人民币作为支付和结算货币的一系列操作和规定。这种结算方式不仅能够降低汇率波动的风险,还能减少兑换成本,近年来随着中国经济的增长和人民币...

    小学数学一年级下册-《认识人民币》-考试卷.pdf

    这篇文档是针对小学一年级学生的一份数学考试卷,主要知识点集中在对人民币的认识和基本运算上。以下是这份试卷涉及的关键知识: 1. **人民币单位及换算**:人民币的基本单位是元,元下面是角,角下面是分。1元等于...

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

    本文主要讲述了如何使用JSP页面调用Applet实现人民币的大小写转换。该实现方法通过在JSP页面中嵌入一个Applet,使用JavaScript与Applet进行交互,实现实时的人民币大小写转换。 一、JSP页面调用Applet的实现 在JSP...

    人教版一年级数学下册第五单元《认识人民币》练习题.doc

    人教版一年级数学下册第五单元《认识人民币》练习题 本练习题主要是为了帮助一年级学生认识人民币的单位、换算关系和基本计算能力。通过本练习题,学生可以熟悉人民币的基本单位元、角、分,理解他们之间的换算关系...

    人工智能-深度学习-PyTorch数据读取实战(以RMB人民币二分类为例)【含详细源代码+数据集+图示分析】

    这是近期完成的一个小项目:主题是:人工智能_深度学习_PyTorch数据读取实战(以RMB人民币二分类为例)【含详细源代码+数据集+图示分析】。资源是十分详细的,并且我已经在博客中记录,详见近期发表的文章:{《...

    java实现人民币大写

    使用java实现对人民币大写处理,亲测可用!

    人民币教材解读.ppt

    【人民币教材解读】 这篇文档是关于小学数学教材中人民币知识的教学解读,主要针对一年级下学期的学生。人民币作为中国的法定货币,在日常生活中扮演着至关重要的角色。教学内容旨在帮助孩子们理解和运用人民币,...

    (完整版)一年级人民币换算题.pdf

    "人民币换算题详解" 本资源系根据一年级人民币换算题的文件信息,总共涵盖了人民币的换算、换算题、计算题和综合题等多个方面的知识点。 一、人民币换算 人民币的单位有元、角、分。1 元=10 角,1 角=10 分。...

    【国家金融与发展实验室】日元汇率有望触底回升 人民币汇率将逐渐企稳-2024Q2人民币汇率.pdf

    【国家金融与发展实验室】日元汇率有望触底回升 人民币汇率将逐渐企稳——2024Q2人民币汇率.pdf【国家金融与发展实验室】日元汇率有望触底回升 人民币汇率将逐渐企稳——2024Q2人民币汇率.pdf【国家金融与发展实验室...

    二年级人民币换算练习题.doc

    二年级人民币换算练习题 二年级人民币换算练习题.doc是一份人民币换算练习题的文档,旨在帮助学生熟悉人民币的单位和换算规则。该文档包括人民币换算的基本概念、单位换算、金额计算等多方面的知识点。 人民币换算...

    2021年人民币国际化报告:理解人民币国际化与其中的商业机会.pdf

    《2021年人民币国际化报告》深入剖析了人民币国际化进程及其背后的商业机遇。人民币国际化,即人民币在国际经济交易中的使用程度不断提高,这既是中国经济实力增长的自然结果,也是政策推动的重要体现。报告指出,...

    认识人民币pps2.ppt

    《认识人民币》是针对儿童和初学者设计的一堂理财基础知识课程,主要目的是帮助他们了解和熟悉人民币的基本面额,以及如何进行简单的货币计算。在这个PPT中,学习者将掌握以下核心知识点: 1. **人民币的基本单位**...

    论文研究 - 人民币加入特别提款权对特别提款权利率的影响研究

    2016年10月1日,在国际货币基金组织的批准下,人民币正式加入特别提款权货币篮子,这不仅认可了人民币的国际地位,也为世界经济的发展注入了新的活力。 特别提款权利率是特别提款权估值和定价的重要组成部分。 基于...

    2021年一年级数学第1课时 认识人民币—认识小面值人民币.doc

    《认识人民币—认识小面值人民币》这节课是针对一年级学生的数学教学内容,主要目的是让学生了解和掌握我国货币的基本知识,特别是小面值的人民币,包括元、角、分的概念及其相互关系。以下是对课程内容的详细阐述:...

    课题七认识人民币(1).docx

    【课题七:认识人民币】 本课题旨在帮助一年级的学生掌握人民币的基本知识,包括识别不同面值的人民币、理解人民币的单位以及其在现实生活中的应用。通过实际情境的引入,如逛商场购物,激发学生的学习兴趣,强调...

Global site tag (gtag.js) - Google Analytics