/**

* 数字形式转人民币金额大写形式

* @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实现)相关推荐

  1. java的重点是什么_你知道初学者学习Java的重点是什么吗?

    如果调试一个程序让你很苦恼,千万不要放弃,成功永远在拐角之后,除非你走到拐角,否则你永远不知道你离他多远,所以,请记住,坚持不懈,直到成功. 集合框架 1:String类:字符串(重点) (1)多个字 ...

  2. php 金额转大写,php 人民币金额转大写程序

    // 人民币金额转大写程序 class Ext_Num2Cny{ static $basical = array(0=>"零","壹","贰&q ...

  3. java中execution的作用_一文初步了解Java虚拟机

    大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制.编译过程和如何对Java程序进行调优相信都会有一个很好的认知. 什么是JVM? JVM(Java Virtual Machin ...

  4. java语言用什么编程_使用什么编程语言开发Java?

    The Java Language is a language specification – you don't write a language in a language, it's a spe ...

  5. java反射获取方法内部_公共技术点之 Java 反射 Reflection

    本文为 Android 开源项目源码解析 公共技术点中的 Java 反射 部分 分析者:Mr.Simple,校对者:Trinea,校对状态:未完成 1. 了解 Java 中的反射 1.1 什么是 Ja ...

  6. 无忧考吧2017二级java_无忧考吧二级JAVA超级模拟软件下载_无忧考吧二级JAVA超级模拟软件官方下载-太平洋下载中心...

    无忧考吧二级JAVA超级模拟软件是一款可以帮助用户朋友来学习计算机二级java语言考试的软件,使用这款二级java模拟考试软件可以帮助用户快速的掌握学习内容和操作逻辑,让你顺利的通过二级java考试. ...

  7. java webservice报文过长_工作1-5年的Java程序猿到底需要怎样的一个技术栈?

    工作1-5年的Java程序猿到底需要怎样的一个技术栈? 前言: 具有1-5年开发经验的程序员 需要学习的内容其实还有很多很多. 今天跟大家交流一下希望分享出来的对大家能够有帮助,这是我这些年总结出的一 ...

  8. java 序列化概念和作用_结合代码详细解读Java序列化与反序列化概念理解

    Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨. 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列 ...

  9. java代码删除文件夹_删除文件夹的java类

    /** * @author www.nwu.edu.cn MiniRice * @author darkrice@gmail.com * @version    1.2 * */ http://www ...

  10. java调用打印预览_急求一个用Java实现的打印及打印预览功能的Demo

    展开全部 package com.szallcom.tools; import java.awt.BorderLayout; import java.awt.Color; import java.aw ...

最新文章

  1. Idea groovy表生成实体类带注释
  2. cocos2d-xna for win8源代码轻松移植cocos-xna for wp游戏
  3. .prop()与.attr()
  4. 120xa正反转参数_你知道变频器的“正反转死区时间”吗?它的“停机方式”有几种?...
  5. 编码的喜悦……以及Java中的变异测试
  6. jQuery 属性,css,文档操作
  7. 2 s锁是什么_《演员请就位》:一场戏拿了2张S卡,任敏凭什么打败老戏骨?
  8. python做统计_利用 Python 进行统计
  9. A* search算法解迷宫
  10. 斜杠“/”与反斜杠“\”的区别
  11. 在MyEclipse中安装SVN插件subclipse
  12. lammps教程:磨屑原子Ovito后处理教程
  13. 商业需求分析(BRD)模板
  14. Android positionViewHolder{4d61b3c position=2 id=-1, oldPos=-1, pLpos:-1 no parent}
  15. 【天光学术】休闲体育论文:中小学学生羽毛球运动员心理训练方法研究
  16. MFC ListCtrl的cheek框的全选和反选
  17. 落日海鸥(Seagulls)
  18. 求两个圆交点的算法和圆与直线交点算法
  19. 【100%通过率 】华为OD真题c++/java/python【完美走位】【 2022 Q4 | 100分】
  20. MT7621原厂openwrt SDK使能串口2和串口3

热门文章

  1. 【线性代数(12)】线性方程组、方程组解的结构
  2. r语言 rgl 强制过程中_R语言中%||%是什么意思?
  3. RMAN传输表空间迁移数据
  4. PPT转换PDF后转成图片
  5. PHP计算比较两段文字内容的重复率
  6. 《达芬奇密码》读后感
  7. 计算机unity文献综述,Unity3D密室逃脱游戏设计+文献综述.doc
  8. 25.HTTP协议和WEB服务器APACHE
  9. 小米mix2安兔兔html5跑分,小米MIX 2S跑分多少?高通骁龙845安兔兔跑分实测 (全文)...
  10. CentOS7创建桌面快捷方式