package 实验三;
public class Exp_7 {
static String bigLetter[] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
// 货币单位
static String unit[] = {"元", "拾", "佰", "仟", "万",
// 拾万位到仟万位
"拾", "佰", "仟",
// 亿位到万亿位
"亿", "拾", "佰", "仟"};
public static void main (String args[]) {
String tmp=args[0];
System.out.println(tmp);
String result []=tmp.split("\\."); //划分为整数部分和小数部分
int len =result.length;
String s=solve(result[0]);
String s1="";
if (len>1)
s1=fun(result[1]);
System.out.println(new StringBuffer(s).reverse()+s1);//记得把小数点左边部分转化结果逆置一下
}
public static String solve(String s) //处理整数部分
{
long x=Long.valueOf(s); //将字字符串s转化为长整型
int ans=-1,flag=1;//ans记录钱的位数
String a = "";
if(x==0)
return " ";
while (x>0)
{
ans++;
long m=x%10;
x=x/10;
if (m==0&&flag==1) {
a+=bigLetter[(int) m];
flag=0;
}
if (m>0){
flag=1;
a+=unit[ans];
a+=bigLetter[(int) m];
}
if(ans==4) a+="万";
if(ans==8) a+="亿";
}
return a;
}
public static String fun (String s) { //处理小数部分
int x=Integer.valueOf(s);
if(x==0)
return "";
if(x<10&&s.length()==1)
return bigLetter[x]+"角";
int m=x%10;
x=x/10;
if (x!=0&&m==0)
{
return bigLetter[x]+"角";
}
else if(x==0)
{
return bigLetter[m]+"分";
}
else return bigLetter[x]+"角"+bigLetter[m]+"分";
}
}
输出结果示例:
1003206.89
壹佰万零叁仟贰佰零陆元捌角玖分
10001003206.89
壹佰亿零壹佰万零叁仟贰佰零陆元捌角玖分
本文档展示了如何使用Java编程将数字金额精确地转换为包含中文大写和货币单位的字符串,如'壹佰元零叁拾贰元捌角玖分'。涉及整数和小数部分的处理,以及相应的字符串格式化技巧。

1万+

被折叠的 条评论
为什么被折叠?



