代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
获取中文大写金额,参数为long型分值
作者:
raymonlu
/ 发布于
2013/10/23
/
612
/** * 获取中国大写金额 * @param money 钱数(分) * @return 中国大写金额 */ public static String getChineseMoney(long money) { if (money == 0) return "零圆整"; String[] cm = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾", "佰", "仟", "万", "亿", "万亿"}; boolean isNegative = (money < 0); if (money < 0) money = Math.abs(money); String my = String.valueOf(money); String ext = my.substring(my.length() - 2); if (ext.equals("00")) { ext = "整"; } else { String ext1 = String.valueOf(ext.charAt(0)); String ext2 = String.valueOf(ext.charAt(1)); if (ext1.equals("0") && !ext2.equals("0")) ext = cm[getIntValue(ext2)] + "分"; else if (!ext1.equals("0") && ext2.equals("0")) ext = cm[getIntValue(ext1)] + "角"; else ext = cm[getIntValue(ext1)] + "角" + cm[getIntValue(ext2)] + "分";; } my = my.substring(0, my.length() - 2); StringBuffer sb = new StringBuffer(); int len = my.length() / 4 + 1; if (len > 4) return "超出价格许可范围!"; int mod = my.length() % 4; String s1 = ""; if (mod > 0) { s1 = my.substring(0, mod); if (len > 1) sb.append(getThousandChinese(cm, s1) + cm[11 + len]); else sb.append(getThousandChinese(cm, s1)); len = len - 1; } for (int i = mod; i < my.length(); i += 4) { String s = my.substring(i, i + 4); String t = getThousandChinese(cm, s); if (t.length() > 0) { sb.append(t); if (i < my.length() - 4) sb.append(cm[11 + len - (i - mod) / 4]); } else { sb.append("零"); } } String str = sb.toString(); while (str.indexOf("零零") > 0) { str = replace(str, "零零", "零"); } if (str.charAt(str.length() - 1) == '零') str = str.substring(0, str.length() - 1); str += "圆" + ext; if (isNegative) str = "负" + str; return str; } /** * 获取一万以内数字的中文大写 * @param thous 一万以内数字 * @return 一万以内数字的中文大写 */ private static String getThousandChinese(String[] cm, String thous) { if (thous.length() > 4) thous = thous.substring(thous.length() - 4); String temp = ""; for (int i = 0; i < thous.length(); i++) { temp += getThousandChinese(cm, thous.charAt(i), thous.length() - i); } while (temp.length() > 0 && temp.charAt(temp.length() - 1) == '零') { temp = temp.substring(0, temp.length() - 1); } return temp; } private static String getThousandChinese(String[] cm, char c, int pos) { if (pos == 1) { if (c == '0') return ""; else return cm[getIntValue(String.valueOf(c))]; } else if (pos == 2) { if (c == '0') return cm[0]; else return cm[getIntValue(String.valueOf(c))] + cm[10]; } else if (pos == 3) { if (c == '0') return cm[0]; else return cm[getIntValue(String.valueOf(c))] + cm[11]; } else if (pos == 4) { if (c == '0') return cm[0]; else return cm[getIntValue(String.valueOf(c))] + cm[12]; } return ""; }
试试其它关键字
中文大写
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
raymonlu
贡献的其它代码
(
1
)
.
获取中文大写金额,参数为long型分值
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3