/**
* 人民币转成大写
*
* @param value
* @return String
*/
public static String hangeToBig(double value)
{
char[] hunit = { '拾', '佰', '仟' }; // 段内位置表示
char[] vunit = { '万', '亿' }; // 段名表示
char[] digit = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; // 数字表示
long midVal = (long) (value * 100); // 转化成整形
String valStr = String.valueOf(midVal); // 转化成字符串
String head = valStr.substring(0, valStr.length() - 2); // 取整数部分
String rail = valStr.substring(valStr.length() - 2); // 取小数部分
String prefix = ""; // 整数部分转化的结果
String suffix = ""; // 小数部分转化的结果
// 处理小数点后面的数
if (rail.equals("00"))
{ // 如果小数部分为0
suffix = "整";
}
else
{
suffix = digit[rail.charAt(0) - '0'] + "角" + digit[rail.charAt(1) - '0'] + "分"; // 否则把角分转化出来
}
// 处理小数点前面的数
char[] chDig = head.toCharArray(); // 把整数部分转化成字符数组
char zero = '0'; // 标志'0'表示出现过0
byte zeroSerNum = 0; // 连续出现0的次数
for (int i = 0; i < chDig.length; i++)
{ // 循环处理每个数字
int idx = (chDig.length - i - 1) % 4; // 取段内位置
int vidx = (chDig.length - i - 1) / 4; // 取段位置
if (chDig[i] == '0')
{ // 如果当前字符是0
zeroSerNum++; // 连续0次数递增
if (zero == '0')
{ // 标志
zero = digit[0];
}
else if (idx == 0 && vidx > 0 && zeroSerNum < 4)
{
prefix += vunit[vidx - 1];
zero = '0';
}
continue;
}
zeroSerNum = 0; // 连续0次数清零
if (zero != '0')
{ // 如果标志不为0,则加上,例如万,亿什么的
prefix += zero;
zero = '0';
}
prefix += digit[chDig[i] - '0']; // 转化该数字表示
if (idx > 0)
prefix += hunit[idx - 1];
if (idx == 0 && vidx > 0)
{
prefix += vunit[vidx - 1]; // 段结束位置应该加上段名如万,亿
}
}
if (prefix.length() > 0)
prefix += '圆'; // 如果整数部分存在,则有圆的字样
return prefix + suffix; // 返回正确表示
}
分享到:
相关推荐
在Java编程世界中,"java源代码实例系列之三供参考"是一个旨在引导初学者深入理解Java编程概念的教程。这个实例系列通过实际的代码示例来解释Java的基础知识,帮助开发者逐步掌握这门强大的面向对象语言。在这个章节...
java编程实例源代码,对初学者非常有帮助。里面有100个实例。
"java简单实例程序源代码"这个压缩包包含了一系列章节相关的Java实例源代码,适合初学者和有经验的开发者用来加深对Java语言的理解。以下是这些章节可能涉及的重要知识点的详细解释: 1. **CH11**: 这个章节可能...
通过学习这些Java源代码实例,初学者可以逐步理解并掌握Java编程语言的核心特性。这些实例不仅提供了理论知识的实践平台,还有助于培养良好的编程习惯和问题解决能力。同时,这些实例也可以作为自我检查和提升的工具...
本资源"JAVA图形界面实例源代码"提供了丰富的GUI实现示例,旨在帮助初学者和进阶开发者更好地理解和应用Java GUI技术。 首先,我们需要了解Java中的Swing和JavaFX两个主要的GUI库。Swing是Java AWT(Abstract ...
【描述】提到的"国内Java培训郝斌视频的一些源代码,上课PPT"意味着这个压缩包中包含两部分主要资料:一是郝斌在视频课程中讲解的Java源代码实例,二是他的授课幻灯片。源代码是学习编程的重要组成部分,因为它直观...
Java游戏中斜视角编辑器及引擎源代码.rar Java游戏使命的召唤源码.rar Java游戏沙丘城堡源代码.rar Java源码的仿QQ聊天程序.rar Java用GZIP压缩解压文件.rar Java用Zip压缩多个文件实例源码.rar Java用的在线地图...
100个Java经典编程实例源代码100个Java经典编程实例源代码100个Java经典编程实例源代码100个Java经典编程实例源代码100个Java经典编程实例源代码100个Java经典编程实例源代码
【标题】"JAVA源代码100实例"涵盖了Java编程语言中的各种常见应用场景和技术点,旨在帮助初学者和进阶者通过实际操作来理解和掌握Java编程。这些实例旨在解决实际问题,提供了一手的编程经验,是提升Java编程技能的...
这个压缩包文件包含了多种Java源代码实例,是初学者探索和学习Java编程的理想资源。以下将详细解析这些源代码可能涉及的知识点,以帮助你更好地理解和应用Java。 1. **基础语法**:所有编程语言都有其基本的语法...
这些源代码实例涵盖了Java的基础概念到进阶特性,是学习和理解Java语法、编程技巧以及解决问题的有效工具。 首先,Java源代码的学习应从基础语法开始。这可能包括变量声明、数据类型(如基本类型和引用类型)、控制...
这些源代码实例可能会包含更多关于如何使用继承和多态性的示例,比如抽象类、final关键字、访问修饰符的应用以及如何在实际项目中利用这些特性提高代码结构的清晰度和可维护性。学习并理解这些示例,对于深入理解和...
在Java编程领域,一个"java工程源代码实例"通常指的是包含了一系列类、接口、方法和其他相关资源的项目,这些组合起来构成了一个可运行的程序。Java工程是开发人员用来组织和管理代码的方式,使得代码更加模块化,...
Java坦克大战网络对战版源代码.rar Java声音播放程序源代码.rar JAVA实现CLDC与MIDP底层编程的代码.rar Java实现HTTP连接与浏览,Java源码下载.rar Java实现的FTP连接与数据浏览程序.rar Java实现的放大镜效果附有...
首先,你需要读取Java源代码文件,然后使用`ASTParser`类来创建一个解析器实例。解析器可以设置不同的解析选项,如源代码版本、绑定级别等。以下是一个基本示例: ```java ASTParser parser = ASTParser.newParser...
通过这些Java源代码实例,开发者可以: 1. 学习基本语法:包括变量、数据类型、运算符、流程控制语句等。 2. 掌握面向对象编程:类、对象、继承、多态、接口等。 3. 熟悉集合框架:List、Set、Map的使用和实现原理...
6. **多线程**:Java提供强大的多线程支持,源代码可能包含Thread类、Runnable接口以及同步机制(如synchronized关键字、wait()、notify()方法)的实例,让读者了解如何在并发环境下编写程序。 7. **网络编程**:...
### 加密Java源代码 #### 知识点概述: 在提供的描述中,主要涉及的是Java源代码加密的相关技术,特别是利用DES(数据加密标准)算法进行加密的过程。本篇文章将详细解析Java源代码加密的基本原理、DES算法的工作...
这个文件可能包含了一系列章节,每个章节都有相应的源代码实例,供读者下载、编译和运行,以加深对课程内容的理解。 总的来说,这份"JAVA学习源代码"资源是一个完整的Java学习套餐,不仅提供了理论知识,还提供了...
《中小型Java游戏实例:探索国外Java源代码》 在编程世界中,Java作为一种跨平台、面向对象的语言,因其强大的性能和灵活性,常被用于开发各种类型的应用程序,其中包括游戏。本资源“中小型Java游戏实例 国外Java...