您的位置:首页 > 编程语言 > Java开发

java将小写金额转换为大写的工具类

2016-09-01 22:23 369 查看
public class Tool {

private static final String UNIT = "万千佰拾亿千佰拾万千佰拾元角分";
private static final String DIGIT = "零壹贰叁肆伍陆柒捌玖";
private static final double MAX_VALUE = 9999999999999.99D;
public static String change(double v) {
if (v < 0 || v > MAX_VALUE){
return "参数非法!";
}
long l = Math.round(v * 100);
if (l == 0){
return "零元整";
}
String strValue = l + "";
// i用来控制数
int i = 0;
// j用来控制单位
int j = UNIT.length() - strValue.length();
String rs = "";
boolean isZero = false;
for (; i < strValue.length(); i++, j++) {
char ch = strValue.charAt(i);
if (ch == '0') {
isZero = true;
if (UNIT.charAt(j) == '亿' || UNIT.charAt(j) == '万' || UNIT.charAt(j) == '元') {
rs = rs + UNIT.charAt(j);
isZero = false;
}
} else {
if (isZero) {
rs = rs + "零";
isZero = false;
}
rs = rs + DIGIT.charAt(ch - '0') + UNIT.charAt(j);
}
}
if (!rs.endsWith("分")) {
rs = rs + "整";
}
rs = rs.replaceAll("亿万", "亿");
return rs;
}

public static void main(String[] args){
System.out.println(Tool.change(12356789.9845));
}
}


运行结果:

壹千贰佰叁拾伍万陆千柒佰捌拾玖元玖角捌分
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: