记录下一些常用的函数,以便下次使用
/**
* 格式化金额
* @param s
* @param len
* @return
*/
public static String formatMoney(String s, int len)
{
if (s == null || s.length() < 1) {
return "";
}
NumberFormat formater = null;
double num = Double.parseDouble(s);
if (len == 0) {
formater = new DecimalFormat("###,###");
} else {
StringBuffer buff = new StringBuffer();
buff.append("###,###.");
for (int i = 0; i < len; i++) {
buff.append("#");
}
formater = new DecimalFormat(buff.toString());
}
String result = formater.format(num);
if(result.indexOf(".") == -1)
{
result = "¥" + result + ".00";
}
else
{
result = "¥" + result;
}
return result;
}
调用该方法
formatMoney("-87094753316.74", 2)
输出格式分:
¥-87,094,753,316.74
将阿拉伯数字转换成对应的大写,不是很完善:
public static String getUpperChineseMoney(String amount) {
if (null==amount||"".equals(amount)||amount.indexOf("-")!=-1)
return "";
if (amount == null||Double.parseDouble(amount)==0) {
return "零元整";
}
boolean islt0 = false;
if(Double.parseDouble(amount) < 0.001){
islt0=true;
amount = (-Double.parseDouble(amount))+"";
}
final String[] upperUnit = {
"万", "仟", "佰", "拾", "亿", "仟", "佰", "拾", "万",
"仟", "佰", "拾", "元"};
final String[] upperNumber = {
"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒",
"捌", "玖"};
final String[] upperDec = {
"角", "分"};
StringBuffer convertedMoney = new StringBuffer("");
String returnString = "";
try {
System.out.println(amount+"----------------------");
DecimalFormat dcf = new DecimalFormat("###########0.00");
String numString = dcf.format(Double.parseDouble(amount));
System.out.println(numString+"----------------------");
numString=numString.replaceAll(",",".");
System.out.println(numString+"----------------------");
int dotPos = numString.indexOf(".");
String integerStr = numString.substring(0, dotPos);
String decStr = numString.substring(dotPos + 1);
int lenInt = integerStr.length();
int lenDec = 0;
if ("00".equalsIgnoreCase(decStr)) {
lenDec = 0;
} else {
lenDec = 2;
}
if (lenInt > 13) {
return "数字太大";
}
boolean zeroFlg = false;
int lenEmpty = 13 - lenInt;
for (int i = 0; i < lenInt; i++) {
String number = integerStr.substring(i, i + 1);
String unit = upperUnit[lenEmpty + i];
String upNum = upperNumber[Integer.parseInt(number)];
if ("0".equalsIgnoreCase(number)) {
if (!zeroFlg) {
zeroFlg = true;
}
if ("亿".equals(unit) || "万".equals(unit) || "元".equals(unit)) {
convertedMoney.append(unit);
}
} else {
if (zeroFlg) {
convertedMoney.append("零").append(upNum).append(unit);
zeroFlg = false;
} else {
convertedMoney.append(upNum).append(unit);
}
}
}
if (lenDec == 0) {
convertedMoney.append("整");
} else {
String jiao = upperNumber[Integer.parseInt(decStr.substring(0,
1))];
if (!"0".equals(decStr.substring(0, 1))) {
convertedMoney.append(jiao).append(upperDec[0]);
} else {
convertedMoney.append(jiao);
}
String fen = upperNumber[Integer.parseInt(decStr.substring(1, 2))];
if (!"0".equals(decStr.substring(1, 2))) {
convertedMoney.append(fen).append(upperDec[1]);
} else {
convertedMoney.append("整");
}
}
returnString = convertedMoney.toString();
if (judgeUnit(returnString)) {
returnString = returnString.replaceFirst("亿万", "亿");
}
} catch (Exception ex) {
ex.printStackTrace();
return "输入格式不正确!";
}
if(islt0){
returnString="负"+returnString;
}
return returnString;
}
调用该方法
getUpperChineseMoney("54545454");
输出格式分:
伍仟肆佰伍拾肆万伍仟肆佰伍拾肆元整
分享到:
相关推荐
输入字符,通过正则验证是否为金额不超过万亿精确到小数点后两位,然后将数字转换为大写 包括后台java正则验证及前台js验证 请输入一个数字(精确到小数点后两位): fdsa54325.54 fdsa54325.54 false 请输入一个...
实例008 使用Eclipse格式化代码 11 实例009 安装WindowBuilder插件 12 实例010 开发计算器界面 14 第3章 Java语言基础 15 实例011 输出错误信息与调试信息 16 实例012 从控制台接收输入字符 16 实例013 重定向输出流...
实例063 String类格式化当前日期 80 实例064 字符串大小写转换 82 实例065 字符与Unicode码的转换 83 4.2 辨别字符串 84 实例066 判断用户名是否正确 84 实例067 用户名排序 85 实例068 判断网页请求与FTP请求 86 ...
219、如何格式化日期 53 220、文件和目录(I/O)操作 54 230、J2EE的优越性 54 231、Java语言的11个关键特性. 54 232、说出Servlet的生命周期,并说出Servlet和CGI的区别。 55 233、说出在JSP页面里是怎么分页的? 55...
JsonUtils - json格式转换 lang CharsetDetectorUtils - 获取文本文件编码格式 ChineseCalendar - 农历日历 ConvertUtils - 高低字节转换 DateUtils - 日期工具类 HtmlFilterUtils - 过滤html标签 JsoupUtils - ...
219、如何格式化日期 53 220、文件和目录(I/O)操作 54 230、J2EE的优越性 54 231、Java语言的11个关键特性. 54 232、说出Servlet的生命周期,并说出Servlet和CGI的区别。 55 233、说出在JSP页面里是怎么分页的? 55...
格式化输出数字和字符? 111.生成一定范围的随机数? 112.调用其它应用程序? 113.禁止列出站点文件目录? 114.防止用户直接输入文件名访问JSP? 115.防止表单重复提交? 116.使页面全屏显示? 117.在...
oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...
数据库操作支持库增加读写长整数字段的功能,但受限于系统接口暂不能读写超出整数范围的数值。 7. 修改高级表格支持库,通过鼠标调整行高列宽时不改变当前光标行列号。 8. 修改BUG:在IDE中打开源代码文件(.e)后...