java实现小写转大写_人民币小写转大写(Java实现)
/**
* 数字形式转人民币金额大写形式
* @param number
* @return
*/
public static String chineseCurrency(double number) {
StringBuffer chineseNumber = new StringBuffer();
String[] num = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
String[] unit = { "分", "角", "圆", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万" };
String tempNumber = String.valueOf(Math.round((number * 100)));
int tempNumberLength = tempNumber.length();
if ("0".equals(tempNumber)) {
return "零圆整";
}
if (tempNumberLength > 15) {
try {
throw new Exception("超出转化范围.");
}
catch (Exception e) {
}
}
boolean preReadZero = true; // 前面的字符是否读零
for (int i = tempNumberLength; i > 0; i--) {
if ((tempNumberLength - i + 2) % 4 == 0) {
// 如果在(圆,万,亿,万)位上的四个数都为零,如果标志为未读零,则只读零,如果标志为已读零,则略过这四位
if (i - 4 >= 0 && "0000".equals(tempNumber.substring(i - 4, i))) {
if (!preReadZero) {
chineseNumber.insert(0, "零");
preReadZero = true;
}
i -= 3; // 下面还有一个i--
continue;
}
// 如果当前位在(圆,万,亿,万)位上,则设置标志为已读零(即重置读零标志)
preReadZero = true;
}
int digit = Integer.parseInt(tempNumber.substring(i - 1, i));
if (digit == 0) {
// 如果当前位是零并且标志为未读零,则读零,并设置标志为已读零
if (!preReadZero) {
chineseNumber.insert(0, "零");
preReadZero = true;
}
// 如果当前位是零并且在(圆,万,亿,万)位上,则读出(圆,万,亿,万)
if ((tempNumberLength - i + 2) % 4 == 0) {
chineseNumber.insert(0, unit[tempNumberLength - i]);
}
}
// 如果当前位不为零,则读出此位,并且设置标志为未读零
else {
chineseNumber.insert(0, num[digit] + unit[tempNumberLength - i]);
preReadZero = false;
}
}
// 如果分角两位上的值都为零,则添加一个“整”字
if (tempNumberLength - 2 >= 0 && "00".equals(tempNumber.substring(tempNumberLength - 2, tempNumberLength))) {
chineseNumber.append("整");
}
return chineseNumber.toString();
}
java实现小写转大写_人民币小写转大写(Java实现)相关推荐
- java的重点是什么_你知道初学者学习Java的重点是什么吗?
如果调试一个程序让你很苦恼,千万不要放弃,成功永远在拐角之后,除非你走到拐角,否则你永远不知道你离他多远,所以,请记住,坚持不懈,直到成功. 集合框架 1:String类:字符串(重点) (1)多个字 ...
- php 金额转大写,php 人民币金额转大写程序
// 人民币金额转大写程序 class Ext_Num2Cny{ static $basical = array(0=>"零","壹","贰&q ...
- java中execution的作用_一文初步了解Java虚拟机
大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制.编译过程和如何对Java程序进行调优相信都会有一个很好的认知. 什么是JVM? JVM(Java Virtual Machin ...
- java语言用什么编程_使用什么编程语言开发Java?
The Java Language is a language specification – you don't write a language in a language, it's a spe ...
- java反射获取方法内部_公共技术点之 Java 反射 Reflection
本文为 Android 开源项目源码解析 公共技术点中的 Java 反射 部分 分析者:Mr.Simple,校对者:Trinea,校对状态:未完成 1. 了解 Java 中的反射 1.1 什么是 Ja ...
- 无忧考吧2017二级java_无忧考吧二级JAVA超级模拟软件下载_无忧考吧二级JAVA超级模拟软件官方下载-太平洋下载中心...
无忧考吧二级JAVA超级模拟软件是一款可以帮助用户朋友来学习计算机二级java语言考试的软件,使用这款二级java模拟考试软件可以帮助用户快速的掌握学习内容和操作逻辑,让你顺利的通过二级java考试. ...
- java webservice报文过长_工作1-5年的Java程序猿到底需要怎样的一个技术栈?
工作1-5年的Java程序猿到底需要怎样的一个技术栈? 前言: 具有1-5年开发经验的程序员 需要学习的内容其实还有很多很多. 今天跟大家交流一下希望分享出来的对大家能够有帮助,这是我这些年总结出的一 ...
- java 序列化概念和作用_结合代码详细解读Java序列化与反序列化概念理解
Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨. 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列 ...
- java代码删除文件夹_删除文件夹的java类
/** * @author www.nwu.edu.cn MiniRice * @author darkrice@gmail.com * @version 1.2 * */ http://www ...
- java调用打印预览_急求一个用Java实现的打印及打印预览功能的Demo
展开全部 package com.szallcom.tools; import java.awt.BorderLayout; import java.awt.Color; import java.aw ...
最新文章
- Idea groovy表生成实体类带注释
- cocos2d-xna for win8源代码轻松移植cocos-xna for wp游戏
- .prop()与.attr()
- 120xa正反转参数_你知道变频器的“正反转死区时间”吗?它的“停机方式”有几种?...
- 编码的喜悦……以及Java中的变异测试
- jQuery 属性,css,文档操作
- 2 s锁是什么_《演员请就位》:一场戏拿了2张S卡,任敏凭什么打败老戏骨?
- python做统计_利用 Python 进行统计
- A* search算法解迷宫
- 斜杠“/”与反斜杠“\”的区别
- 在MyEclipse中安装SVN插件subclipse
- lammps教程:磨屑原子Ovito后处理教程
- 商业需求分析(BRD)模板
- Android positionViewHolder{4d61b3c position=2 id=-1, oldPos=-1, pLpos:-1 no parent}
- 【天光学术】休闲体育论文:中小学学生羽毛球运动员心理训练方法研究
- MFC ListCtrl的cheek框的全选和反选
- 落日海鸥(Seagulls)
- 求两个圆交点的算法和圆与直线交点算法
- 【100%通过率 】华为OD真题c++/java/python【完美走位】【 2022 Q4 | 100分】
- MT7621原厂openwrt SDK使能串口2和串口3
热门文章
- 【线性代数(12)】线性方程组、方程组解的结构
- r语言 rgl 强制过程中_R语言中%||%是什么意思?
- RMAN传输表空间迁移数据
- PPT转换PDF后转成图片
- PHP计算比较两段文字内容的重复率
- 《达芬奇密码》读后感
- 计算机unity文献综述,Unity3D密室逃脱游戏设计+文献综述.doc
- 25.HTTP协议和WEB服务器APACHE
- 小米mix2安兔兔html5跑分,小米MIX 2S跑分多少?高通骁龙845安兔兔跑分实测 (全文)...
- CentOS7创建桌面快捷方式