private static String lowToUp2(double money){
Map<String,String> map = new HashMap<>();
map.put("0","零");
map.put("1","壹");
map.put("2","贰");
map.put("3","叁");
map.put("4","肆");
map.put("5","伍");
map.put("6","陆");
map.put("7","柒");
map.put("8","捌");
map.put("9","玖");

map.put("#0","");
map.put("#1","拾");
map.put("#2","佰");
map.put("#3","仟");

map.put("0#1","角");
map.put("0#2","分");

map.put("##0","");
map.put("##1","萬");
map.put("##2","亿");
map.put("##3","萬");

StringBuffer result = new StringBuffer();
//如果有分存在,则取整
String moneyString = (money+"").split("\\.")[0];
LinkedMap<Integer,List<String>> valueMap = new LinkedMap<>();
int init = 0;
List<String> values = new ArrayList<>();
//四位一分割
for(int i=moneyString.length()-1;i>=0;i--){
if(values.size()==4){
valueMap.put(init,values);
values = new ArrayList<>();
init+=1;
}
values.add(moneyString.charAt(i)+"");
}
valueMap.put(init,values);

//匹配上符号
for (Map.Entry<Integer,List<String>> m:valueMap.entrySet()){
List<String> vs = m.getValue();
StringBuffer subP = new StringBuffer();
for(int index=0;index<vs.size();index++){
boolean flag = subP.length()==0 || (subP.charAt(0)+"").equals("拾") || (subP.charAt(0)+"").equals("佰") || (subP.charAt(0)+"").equals("仟") || (subP.charAt(0)+"").equals("零");
if(vs.get(index).equals("0") && flag){
continue;
}
subP.insert(0,vs.get(index).equals("0")?map.get(vs.get(index)):map.get(vs.get(index))+map.get("#"+index));
}
if(subP.toString().length()>0){
result.insert(0,subP.toString()+map.get("##"+m.getKey()));
}else{
result.insert(0,"零");
}
}
//单独处理分,判断是否有分存在
if((money+"").contains(".")){
String moneyString0 = (money+"").split("\\.")[1];
//判断是否只有一个点
if(moneyString0.length()>0){
//只取前两位
if(moneyString0.length()>2){
moneyString0 = moneyString0.substring(0,2);
}
//判断是否小数都是0
if(!moneyString0.equals("00") && !moneyString0.equals("0")){
result.append((moneyString0.charAt(0)+"").equals("0")?"零":map.get(moneyString0.charAt(0)+"")+map.get("0#1"));
//判断是否有分
if(moneyString0.length()>1){
result.append((moneyString0.charAt(1)+"").equals("0")?"":map.get(moneyString0.charAt(1)+"")+map.get("0#2"));
}
}
}
}
//如果没有角和分,则追加圆整
if(!result.toString().contains("角") && !result.toString().contains("分")){
result = result.append("圆整");
}

return result.toString();
}