java实现数字金额转换成汉字大写金额
我们经常在做项目的财务报表,需要打印发票等情况时需要用到小写的财务金额要转换成汉字的大写金额,下面就是实现该功能的代码
import java.lang.Math;
/**
*通用型金钱转换类
*
*/
public class Money {
private String HanDigiStr[] = new String[] { "零", "壹", "贰", "叁", "肆", "伍",
"陆", "柒", "捌", "玖" };
private String HanDiviStr[] = new String[] { "", "拾", "佰", "仟", "万", "拾",
"佰", "仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰",
"仟", "万", "拾", "佰", "仟" };
/**
* @param NumStr 输入字符串必须正整数,只允许前导空格(必须右对齐),不宜有前导零
* @return
*/
String PositiveIntegerToHanStr(String NumStr) {
String RMBStr = "";
boolean lastzero = false;
boolean hasvalue = false; // 亿、万进位前有数值标记
int len, n;
len = NumStr.length();
if (len > 15)
return "数值过大!";
for (int i = len - 1; i >= 0; i--) {
if (NumStr.charAt(len - i - 1) == ' ')
continue;
n = NumStr.charAt(len - i - 1) - '0';
if (n < 0 || n > 9)
return "输入含非数字字符!";
if (n != 0) {
if (lastzero)
RMBStr += HanDigiStr[0]; // 若干零后若跟非零值,只显示一个零
// 除了亿万前的零不带到后面
// if( !( n==1 && (i%4)==1 && (lastzero || i==len-1) ) ) //
// 如十进位前有零也不发壹音用此行
if (!(n == 1 && (i % 4) == 1 && i == len - 1)) // 十进位处于第一位不发壹音
RMBStr += HanDigiStr[n];
RMBStr += HanDiviStr[i]; // 非零值后加进位,个位为空
hasvalue = true; // 置万进位前有值标记
} else {
if ((i % 8) == 0 || ((i % 8) == 4 && hasvalue)) // 亿万之间必须有非零值方显示万
RMBStr += HanDiviStr[i]; // “亿”或“万”
}
if (i % 8 == 0)
hasvalue = false; // 万进位前有值标记逢亿复位
lastzero = (n == 0) && (i % 4 != 0);
}
if (RMBStr.length() == 0)
return HanDigiStr[0]; // 输入空字符或"0",返回"零"
return RMBStr;
}
本人从事软件项目开发20年,10年的Java工程师系列课程的教学工作,录制30多门精品视频课程,每门课程都包含有项目实战,上课PPT,及完整的源代码下载,有兴趣的朋友可以看看我的在线课堂,如果想更详细全面的学习java课程,可以看看我的java从入门到精通+项目实训的视频课程:http://edu.csdn.net/course/detail/2981
java实现数字金额转换成汉字大写金额相关推荐
- win7计算机名改成大写,图文解读win7系统excel数字小写金额转换成汉字大写金额的措施...
有很多网友在使用电脑的过程总难免会遇到win7系统excel数字小写金额转换成汉字大写金额的情况.针对win7系统excel数字小写金额转换成汉字大写金额的问题,我给大家整理总结了详细的解决步骤.近日 ...
- java数字金额转换成汉字大写
java数字转换成汉字大写.数字转发票上的人民币大写 1.调用方法 NumToCN.number2CNMontrayUnit(zjJE): 2.转换类 import java.math.BigDeci ...
- 【C语言】小写数字金额转换成中文大写金额
1. 更新说明 添加与 "零圆整" 等价的预先判断 (0 / 0. / 0.0 / 0.00 / . / .0 / .00) 修复了因使用函数 strdup 导致的内存泄漏 除去输 ...
- Java数字金额转化成汉字大写金额
import java.math.BigDecimal;/*** Utils - 金额转为大写汉字*/ public final class NumberToCNUtils {/**汉语中数字大写*/ ...
- js 文字金额转换成汉字大写金额
最近在写项目时 经常出现输入数字金额 转换为汉字大写金额的需求 今天用js 简单封装一个方法. 上代码: <!DOCTYPE html> <html lang="en&qu ...
- 【简单易懂】Java字符串应用场景:数字金额转换成大写汉字金额【金额转换】
Java字符串应用场景:数字金额转换成汉字金额 文章目录 Java字符串应用场景:数字金额转换成汉字金额 前言 一.String简单介绍 二.字符串在开发中的应用场景 三.金额转换 3.1解题思路 3 ...
- 金额转换成中文大写金额
留个纪念.这个类主要用于将数字金额转换成中文大写金额,提供了三个方法: toDX(double val) toDX(String val) toDX(int val) 使用方法 AmtInWords. ...
- win7计算机名改成大写,Win7系统下excel数字小写金额怎么转换成汉字大写金额
很多 第一种:设置单元格格式 在单元格中输入想要变成大写的数字之后,按Ctrl+1调出单元格格式设置对话框,在分类选择特殊类型为中文大写数字,最后再单击确定按钮即可看到自己原本的小写数字变成大写了: ...
- Java 将数字金额转成中文大写
一个 Java 将数字金额转成中文大写的工具类,还不是很完善. import java.util.regex.Matcher; import java.util.regex.Pattern;publi ...
最新文章
- Tree-Structured LSTM模型
- 分支语句、循环语句、函数初步
- Anchor-free目标检测 | 工业应用更友好的新网络(附大量相关论文下载)
- python中向量长度_python中向量指的是什么意思
- linux运维趋势 37期刊为啥没有,linux运维常见问题
- lin通讯从节点同步间隔场_汽车行业必须知识--CAN FD通讯
- 上传文件显示进度条_文件上传带进度条进阶-断点续传
- c++ 字符串转数字
- lp3676 小清新数据结构题
- 如何配置数据库ODBC数据源
- (转)高新技术在高频交易中的运用
- java核心技术卷1 所有示例代码
- 简易PROTUES的定时器仿真
- SpringMVC工作原理详细讲解
- Kafka的数据结构与算法
- mysql_sniffer安装
- 织梦dedeCMS留言薄
- android 锁屏的生命周期_Activity的生命周期的七个场景
- excel应用之合并单元格保留内容和替换软回车
- lincx Shell脚本编程之字符串的截取,替换,按条件掐头去尾