当前位置: 技术问答>java相关
请问各位大侠:如何将小写数字转换成大写?
来源: 互联网 发布时间:2015-02-01
本文导语: 比如12345678元换成:壹千贰佰叁拾肆万伍千陆佰柒拾捌元 如果哪位能说明相关的类、函数、算法等也给分,分可以加,没问题 | string dx_sz,dx_dw,str_int,str_dec,dx_str,fu,a,b,b2,c,d,result long num_int,num_dec,len_int,i,a_i...
比如12345678元换成:壹千贰佰叁拾肆万伍千陆佰柒拾捌元
如果哪位能说明相关的类、函数、算法等也给分,分可以加,没问题
如果哪位能说明相关的类、函数、算法等也给分,分可以加,没问题
|
string dx_sz,dx_dw,str_int,str_dec,dx_str,fu,a,b,b2,c,d,result
long num_int,num_dec,len_int,i,a_int,pp
dx_sz = "零壹贰叁肆伍陆柒捌玖"
dx_dw = "万仟佰拾亿仟佰拾万仟佰拾元"
//处理小于零情况
if ls0) and (ls0 then
str_int = mid(dx_str,1,pos(dx_str,".")-1)
else
str_int = dx_str
end if
num_int = long(str_int)
//取得小数及小数串
if (ls>0) and (ls= 10 then
a_int = long(mid(str_dec,1,1))
a = mid(dx_sz,(a_int*2+1),2)
a_int = long(mid(str_dec,2,1))
b = mid(dx_sz,(a_int*2+1),2)
if a"零" then a = a+"角"
if b "零" then
b = b+"分"
else
b= ""
end if
dx_str = dx_str + a + b
end if
if ls= 0 then dx_str = "零元整"
dx_str = fu+dx_str
result = dx_str
return result
这是一个函数,以前在PB里编的!你用JSP实现思路是一样的哦!不过JSP我没接触过!努力吧!
long num_int,num_dec,len_int,i,a_int,pp
dx_sz = "零壹贰叁肆伍陆柒捌玖"
dx_dw = "万仟佰拾亿仟佰拾万仟佰拾元"
//处理小于零情况
if ls0) and (ls0 then
str_int = mid(dx_str,1,pos(dx_str,".")-1)
else
str_int = dx_str
end if
num_int = long(str_int)
//取得小数及小数串
if (ls>0) and (ls= 10 then
a_int = long(mid(str_dec,1,1))
a = mid(dx_sz,(a_int*2+1),2)
a_int = long(mid(str_dec,2,1))
b = mid(dx_sz,(a_int*2+1),2)
if a"零" then a = a+"角"
if b "零" then
b = b+"分"
else
b= ""
end if
dx_str = dx_str + a + b
end if
if ls= 0 then dx_str = "零元整"
dx_str = fu+dx_str
result = dx_str
return result
这是一个函数,以前在PB里编的!你用JSP实现思路是一样的哦!不过JSP我没接触过!努力吧!
|
test.htm
jsp test
change.jsp
0; i--)
{
temp = output1.substring(i-1, i);
switch (j)
{
case 0:
break;
case 1:
temp += "拾";
break;
case 2:
temp += "佰";
break;
case 3:
temp +="仟";
break;
case 4:
if (output.indexOf("万") > 0)
{
temp += "亿";
}
else
{
temp += "万";
}
j = 0;
break;
}
output = temp + output;
j++;
}
if (decimal != null)
{
output2 = tochinese(decimal.toCharArray());
return output + "点" + output2;
}
return output;
}
%>
在英文的win2k里面可以正确显示中文。
在千亿范围内的数字可以正确转换。
没有对连续的零进行处理。
jsp test
change.jsp
0; i--)
{
temp = output1.substring(i-1, i);
switch (j)
{
case 0:
break;
case 1:
temp += "拾";
break;
case 2:
temp += "佰";
break;
case 3:
temp +="仟";
break;
case 4:
if (output.indexOf("万") > 0)
{
temp += "亿";
}
else
{
temp += "万";
}
j = 0;
break;
}
output = temp + output;
j++;
}
if (decimal != null)
{
output2 = tochinese(decimal.toCharArray());
return output + "点" + output2;
}
return output;
}
%>
在英文的win2k里面可以正确显示中文。
在千亿范围内的数字可以正确转换。
没有对连续的零进行处理。
|
public class Change1
{
public String change(String integer, String decimal)
{
String output = new String();
String output1 = new String();
String output2 = new String();
String temp1 = new String();
//String temp2=" ";
output1 = tochinese(integer.toCharArray());
int j = 0,k=0;
k=output1.length();
for (int i = k; i > 0; i--)
{
temp1 = output1.substring(i-1, i);
/**if(temp1.equals("零"))
{
if(temp1.equals(temp2)){
temp2=temp1;
temp1="";}
else {
temp2=temp1;
if(i==k)temp1="";
}
System.out.println(temp1);
}
else
{
temp2=" ";
*/
switch (j%4)
{
case 0:
break;
case 1:
temp1 += "拾";
break;
case 2:
temp1 += "佰";
break;
case 3:
temp1 +="仟";
break;
}
if (j==4||j==12)
temp1 += "万";
if (j==8)
temp1 += "亿";
output = temp1 + output;
j++;
}
output+=" "+" "+" ";
System.out.println(output);
int s=0;
String dx="";
while(s0) and (ls= 10 then
a_int = long(mid(str_dec,1,1))
a = mid(dx_sz,(a_int*2+1),2)
a_int = long(mid(str_dec,2,1))
b = mid(dx_sz,(a_int*2+1),2)
if a"零" then a = a+"角"
if b "零" then
b = b+"分"
else
b= ""
end if
dx_str = dx_str + a + b
end if
if ls= 0 then dx_str = "零元整"
dx_str = fu+dx_str
result = dx_str
return result
试试吧!思路是一样的!!祝你成功!
{
public String change(String integer, String decimal)
{
String output = new String();
String output1 = new String();
String output2 = new String();
String temp1 = new String();
//String temp2=" ";
output1 = tochinese(integer.toCharArray());
int j = 0,k=0;
k=output1.length();
for (int i = k; i > 0; i--)
{
temp1 = output1.substring(i-1, i);
/**if(temp1.equals("零"))
{
if(temp1.equals(temp2)){
temp2=temp1;
temp1="";}
else {
temp2=temp1;
if(i==k)temp1="";
}
System.out.println(temp1);
}
else
{
temp2=" ";
*/
switch (j%4)
{
case 0:
break;
case 1:
temp1 += "拾";
break;
case 2:
temp1 += "佰";
break;
case 3:
temp1 +="仟";
break;
}
if (j==4||j==12)
temp1 += "万";
if (j==8)
temp1 += "亿";
output = temp1 + output;
j++;
}
output+=" "+" "+" ";
System.out.println(output);
int s=0;
String dx="";
while(s0) and (ls= 10 then
a_int = long(mid(str_dec,1,1))
a = mid(dx_sz,(a_int*2+1),2)
a_int = long(mid(str_dec,2,1))
b = mid(dx_sz,(a_int*2+1),2)
if a"零" then a = a+"角"
if b "零" then
b = b+"分"
else
b= ""
end if
dx_str = dx_str + a + b
end if
if ls= 0 then dx_str = "零元整"
dx_str = fu+dx_str
result = dx_str
return result
试试吧!思路是一样的!!祝你成功!
|
//取得整数及整数串
dx_str = string(ls)
if (ls>0) and (ls0 then
str_int = mid(dx_str,1,pos(dx_str,".")-1)
else
str_int = dx_str
end if
num_int = long(str_int)
如果给出,ls=0.56,那么pp,str_int,num_int分别等于多少啊?请教知道者。
dx_str = string(ls)
if (ls>0) and (ls0 then
str_int = mid(dx_str,1,pos(dx_str,".")-1)
else
str_int = dx_str
end if
num_int = long(str_int)
如果给出,ls=0.56,那么pp,str_int,num_int分别等于多少啊?请教知道者。
|
good!``
|
记得以前也有这个问题,有JAVA代码,但忘记了,你查找看看。
|
请问今天:pos(dx_str,".")是个什么函数?
|
谁回答都行,急!!
|
点号在字符窜中的位置
|
点号在字符窜中的位置
|
相当于格式化输出。
|
那mid(string a,int b,int c)是起什么作用