金额转换

wjh48162491 2007-09-15 04:06:40
读入一个浮点数,将其转换为中文金额的大写形式,如123.45转化为壹佰贰拾叁元肆角伍分
...全文
186 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangfeidecainiao 2007-09-20
  • 打赏
  • 举报
回复
还是有点问题 你输入 11111111很好
输入 10000000 就有问题了

E:\JavaTest>java Change 10000000
一千
E:\JavaTest>java Change 11111111
一千一百一十一万一千一百一十一元


zephyr_cc 2007-09-20
  • 打赏
  • 举报
回复
还是转一下吧
http://community.csdn.net/Expert/topic/5762/5762030.xml?temp=.1518671
dos2004 2007-09-20
  • 打赏
  • 举报
回复
代码编译通过,执行有异常,不行,呵呵
free_zk 2007-09-19
  • 打赏
  • 举报
回复
挺好用的
yuzhlhua 2007-09-19
  • 打赏
  • 举报
回复
mark
wjh48162491 2007-09-19
  • 打赏
  • 举报
回复
具体一下题目:
1.当金额为整数时,只表示整数部分,省略小数部分,并添加"整"字,如123表示为:壹佰贰拾叁元整
2.当金额中含有连续的0时,只需写一个零
3.10的表示形式,如10则表示为:拾元整
cursor_wang 2007-09-15
  • 打赏
  • 举报
回复
象你这样的把String str1="零一二三四五六七八九";改成String str1="零壹贰叁肆伍陆柒捌玖";这样就可以了.
treewind2008 2007-09-15
  • 打赏
  • 举报
回复
是该给分 不然就白忙活了 呵呵
cursor_wang 2007-09-15
  • 打赏
  • 举报
回复
我发给你,记得给分啊.
public class Change{

void fun(String str)
{
String str1="零一二三四五六七八九";
String str2="千百十万千百十元角分";
double money=Double.parseDouble(str);
long temp;
long m[] =new long[10];
int i;
boolean flag=false;
int x=0;
int y=9;
money=money*100+0.5;
temp=(long)money;
m[0]=temp/1000000000;
m[1]=(temp%1000000000)/100000000;
m[2]=(temp%100000000)/10000000;
m[3]=(temp%10000000)/1000000;
m[4]=(temp%1000000)/100000;
m[5]=(temp%100000)/10000;
m[6]=(temp%10000)/1000;
m[7]=(temp%1000)/100;
m[8]=(temp%100)/10;
m[9]=temp%10;
for(i=0;i<10;i++)
{
if(m[i]!=0)
{
x=i;
break;
}
}
for(i=9;i>=0;i--)
{
if(m[i]!=0)
{
y=i;
break;
}
}
for(i=x;i<y+1;i++)
{
//System.out.print(m[i]);
if(m[i]==0)
{
if(flag==false)
{
System.out.print(""+str1.charAt((int)m[i]));
flag=true;
}

}
else
{

System.out.print(""+str1.charAt((int)m[i])+str2.charAt(i));
flag=false;
}
}
}
public static void main(String args[])
{
Change obj=new Change();
obj.fun(args[0]);
}

}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧