Oo缘来是你oO
BlogJava
首页
新随笔
新文章
联系
聚合
管理
posts - 120,comments - 125,trackbacks - 0
<
2006年11月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(5)
给我留言
查看公开留言
查看私人留言
随笔分类
(62)
DataBase(2)
Java (3)
Java Script(13)
SoureCode(15)
Web 页面(2)
外文翻译(2)
技术网摘(2)
精美图片(4)
经典 C++(3)
随笔人生(16)
随笔档案
(120)
2009年3月 (1)
2009年1月 (2)
2008年12月 (5)
2008年3月 (2)
2007年10月 (2)
2007年4月 (4)
2007年2月 (2)
2006年12月 (3)
2006年11月 (4)
2006年10月 (27)
2006年9月 (7)
2006年8月 (56)
2006年7月 (5)
JavaScript
JavaScript.com
w3schools.com --- JavaScript Tutorial
WebReference.com --- JavaScript
个人博客
Oo缘来是你oO --- CnBlogs
Oo缘来是你oO --- CppBlog
Oo缘来是你oO --- CSDNBlogs
技术网站
The Code Project
WebReference.com
Web服务_TechTarget IT专家网
邪恶八进制
有一只企鹅叫Linux
ChinaUnix.net
GCC home page!
linux宝库
有一部咖啡叫Java
Java Examples from The Java Developers Almanac 1.4
Java Language Specification --- Second Edition
JavaJava世界_中文论坛
Java开源大全
Java爱好者
SUN中国技术社区
中国Eclipse社区
有一部经典叫C++
C FAQs
C Programming Reference
C-C++ Reference
CPP Home
Cprogramming
STL 中文站
The C Standards Committee
The C++ resources network
The C++ Standards Committee
系列文章
构建项目公共辅助类__CommonUtils
《程序员》特别策划之Java十年再回首
中国程序员的26种能力
如何让你的程序运行的更快
经典Blog
Cat _ 用自己的双手创造未来
eamoi之Coder日志
Flyingis
zbw25 _ 读书、思考、生活
搜索
积分与排名
积分 - 143433
排名 - 428
最新评论
1. re: JavaScript中的Boolean,你了解多少?
评论内容较长,点击标题查看
--伊泽godv
2. re: JavaScript中的Boolean,你了解多少?
除此之外,容易混淆的还有数组与Array对象;数与Number对象;字符串和String对象;事件与Event对象
--ezqrq
3. re: JavaScript中的Boolean,你了解多少?
评论内容较长,点击标题查看
--ezqrq
4. re: 表格列宽鼠标拖动[未登录]
为什么只显示出那个拖动的符号,拖动不了呢
--呵呵
5. re: JavaScript中的Boolean,你了解多少?[未登录]
typeof true 'boolean'
type of new Boolean(false) 'object'
object 总为真
--hewei
阅读排行榜
1. 大道至简 Java 23种模式一点就通(转贴)(6515)
2. Webdings字体图案(6200)
3. 什么是FreeMarker?(5506)
4. 如何让你的程序运行的更快 (2)--- JavaScript中的数组之字符串下标的运用 (5189)
5. JavaScript中的Boolean,你了解多少?(4934)
6. 关于 sizeof() 的一些思考(4480)
7. 敏捷开发与极限编程的简介(4350)
8. 【原】CSS+JavaScript 实现TabPane页签(4026)
9. JavaScript For Beginners(转载)(3867)
10. QQ木马win32.QQPsw.wunaiwangdaod.a删除方法!!!(3646)
评论排行榜
1. JavaScript中的Boolean,你了解多少?(14)
2. 什么是高效算法?(9)
3. 优秀的编程人员应该掌握的十种编程语言(转载)(6)
4. 如何让你的程序运行的更快(1)---String VS StringBuffer(6)
5. 保存ResultSet中的数据(Java Source Code)(5)
如何将字符串或者数字转换成大写货币
如何将字符串或者数字转换成大写货币
马嘉楠
2006-10-16
注:示例程序会将字符串或者数字转换成大写货币的表现形式。可以把这一部分放到字符串处理的公共类 StringUtils 中,和 DateUtils (《
时间日期的一些处理方法
》
)一起,作为项目的公共部分 CommonUtils ,供其它程序进行调用。CommonUtils 就好像是一个辅助工具,使我们能更好的完成项目。我会逐步去添加完善 CommonUtils ,你也可以从现在开始创建自己的代码库,毕竟有很多有用的代码是可以复用的。省时省力,何乐而不为?
主要内容:
MoneyConvert.java --- 本文当中只涉及如何将字符串或者数字转换成大写货币的方法
主要功能:
1. String convertToCapitalMoney(String moneyStr)
将字符串转换成中文的大写货币值
2. String convertToCapitalMoney(double moneyValue)
将数字转换成中文的大写货币值
文件:MoneyConvert.java
package
Common.Utils.StringUtils;
/** */
/**
*
* <p>Description: 字符串处理的公共类</p>
* <p>Copyright 2006 mjn.</p>
*
@author
ma jia nan
* @Create Date : 2006-10-16
* @Version : 1.0
*/
public
class
MoneyConvert
{
/** */
/**
* 将字符串转换成中文的大写货币值
*
*
@param
moneyStr
*
@return
*/
public
static
String convertToCapitalMoney(String moneyStr)
{
double
money
=
0
;
try
{
money
=
Double.parseDouble(moneyStr);
}
catch
(Exception e)
{
}
return
convertToCapitalMoney(money);
}
/** */
/**
* 将数字转换成中文的大写货币值
*
*
@param
moneyValue
*
@return
*/
public
static
String convertToCapitalMoney(
double
moneyValue)
{
double
money
=
moneyValue
+
0.005
;
//
防止浮点数四舍五入造成误差
String Result
=
""
;
String capitalLetter
=
"
零壹贰叁肆伍陆柒捌玖
"
;
String monetaryUnit
=
"
分角圆拾佰仟万拾佰仟亿拾佰仟万拾佰仟亿拾佰仟
"
;
String tempCapital, tempUnit;
int
integer;
//
钱的整数部分
int
point;
//
钱的小数部分
int
tempValue;
//
钱的每一位的值
integer
=
(
int
) money;
point
=
(
int
) (
100
*
(money
-
(
float
) integer));
if
(integer
==
0
)
Result
=
"
零圆
"
;
/**/
/*
* 货币整数部分操作
* 1. 依次取得每一位上的值
* 2. 转换成大写
* 3. 确定货币单位
*/
for
(
int
i
=
1
; integer
>
0
; i
++
)
{
tempValue
=
(integer
%
10
);
tempCapital
=
capitalLetter.substring(tempValue, tempValue
+
1
);
tempUnit
=
monetaryUnit.substring(i
+
1
, i
+
2
);
Result
=
tempCapital
+
tempUnit
+
Result;
integer
=
integer
/
10
;
}
/**/
/*
* 货币小数部分操作
*/
tempValue
=
(point
/
10
);
for
(
int
i
=
1
; i
>
-
1
; i
--
)
{
tempCapital
=
capitalLetter.substring(tempValue, tempValue
+
1
);
tempUnit
=
monetaryUnit.substring(i, i
+
1
);
Result
=
Result
+
tempCapital
+
tempUnit;
tempValue
=
point
%
10
;
}
return
Result;
}
}
测试代码:
public
static
void
main(String[] args)
{
String money
=
MoneyConvert.convertToCapitalMoney(
"
3456789.347
"
);
System.out.println(money);
String money1
=
MoneyConvert.convertToCapitalMoney(
3456789.347
);
System.out.println(money1);
}
结果:
叁佰肆拾伍万陆仟柒佰捌拾玖圆叁角伍分
叁佰肆拾伍万陆仟柒佰捌拾玖圆叁角伍分
马嘉楠
jianan.ma@gmail.com
posted on 2006-10-16 16:00
马嘉楠
阅读(1408)
评论(4)
编辑
收藏
所属分类:
SoureCode
FeedBack:
#
re: 如何将字符串或者数字转换成大写货币
2006-11-02 20:42 |
niu
l老大我怎么显示的和你的不一样啊?
零圆壹角贰分肆
贰拾叁万肆仟伍佰陆拾柒圆捌角贰分肆
回复
更多评论
#
re: 如何将字符串或者数字转换成大写货币
2006-11-03 19:35 |
马嘉楠
@niu
你的测试数据是多少啊?是完全copy我的程序么?作修改了么?
你有这句代码么?
double money = moneyValue + 0.005 ; // 防止浮点数四舍五入造成误差
回复
更多评论
#
re: 如何将字符串或者数字转换成大写货币
2006-11-10 13:54 |
casper
我也是这个问题 显示有出入
回复
更多评论
#
re: 如何将字符串或者数字转换成大写货币
2011-06-17 16:03 |
sys025
你们拿着程序就只知道复制用么?自己调试下就能发现String capitalLetter = " 零壹贰叁肆伍陆柒捌玖 " ;零前面有个空格。。去掉就行了。
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
相关文章:
表格列宽鼠标拖动
【JavaScript】悬浮窗口
【JavaScript】列表(Select)选项(Option)的移动(上下左右)
【原】CSS+JavaScript 实现TabPane页签
【原】【JavaScript】列表元素上下左右移动:Select和Option的应用
【原创】CSS+JavaScript 实现菜单功能--改进版
Print Fibonacci Sequcnce
简单的密码验证控件
蛇行填数
一道很简单的老问题,求更好的解决方法