当前位置: 技术问答>java相关
请问如何实现人民币的大小写问题
来源: 互联网 发布时间:2015-07-01
本文导语: 例如:输入12345.56 输出为 壹万贰千叁百肆拾伍圆伍角陆分 1,2345.56 | public static String numtochinese(String input){ String s1="零壹贰叁肆伍陆柒捌玖"; String s2="仟佰拾亿仟佰拾万...
例如:输入12345.56
输出为 壹万贰千叁百肆拾伍圆伍角陆分
1,2345.56
输出为 壹万贰千叁百肆拾伍圆伍角陆分
1,2345.56
|
public static String numtochinese(String input){
String s1="零壹贰叁肆伍陆柒捌玖";
String s2="仟佰拾亿仟佰拾万仟佰拾元";
String s4="分角整元拾佰仟万拾佰仟亿拾佰仟";
String s3="元角分";
String temp="";
String result="";
if (input==null) return "输入字串不是数字串只能包括以下字符('0'~'9','.'),输入字串最大只能精确到仟亿,小数点只能两位!";
temp=input.trim();
float f;
try{
f=Float.parseFloat(temp);
}catch(Exception e){return "输入字串不是数字串只能包括以下字符('0'~'9','.'),输入字串最大只能精确到仟亿,小数点只能两位!";}
int len=0;
if (temp.indexOf(".")==-1) len=temp.length();
else len=temp.indexOf(".");
if(len>s4.length()-3) return("输入字串最大只能精确到仟亿,小数点只能两位!");
int n1,n2=0;
String num="";
String unit="";
for(int i=0;ilen+2){break;}
if(i==len) {continue;}
n1=Integer.parseInt(String.valueOf(temp.charAt(i)));
num=s1.substring(n1,n1+1);
n1=len-i+2;
unit=s4.substring(n1,n1+1);
result=result.concat(num).concat(unit);
}
if ((len==temp.length())||(len==temp.length()-1)) result=result.concat("整");
if (len==temp.length()-2) result=result.concat("零分");
return result;
}
String s1="零壹贰叁肆伍陆柒捌玖";
String s2="仟佰拾亿仟佰拾万仟佰拾元";
String s4="分角整元拾佰仟万拾佰仟亿拾佰仟";
String s3="元角分";
String temp="";
String result="";
if (input==null) return "输入字串不是数字串只能包括以下字符('0'~'9','.'),输入字串最大只能精确到仟亿,小数点只能两位!";
temp=input.trim();
float f;
try{
f=Float.parseFloat(temp);
}catch(Exception e){return "输入字串不是数字串只能包括以下字符('0'~'9','.'),输入字串最大只能精确到仟亿,小数点只能两位!";}
int len=0;
if (temp.indexOf(".")==-1) len=temp.length();
else len=temp.indexOf(".");
if(len>s4.length()-3) return("输入字串最大只能精确到仟亿,小数点只能两位!");
int n1,n2=0;
String num="";
String unit="";
for(int i=0;ilen+2){break;}
if(i==len) {continue;}
n1=Integer.parseInt(String.valueOf(temp.charAt(i)));
num=s1.substring(n1,n1+1);
n1=len-i+2;
unit=s4.substring(n1,n1+1);
result=result.concat(num).concat(unit);
}
if ((len==temp.length())||(len==temp.length()-1)) result=result.concat("整");
if (len==temp.length()-2) result=result.concat("零分");
return result;
}