如何用Java编程实现人民币大小写转换?

在eclipse上运行,最好是调用applet实现人民币大小写转换。... 在eclipse上运行,最好是调用applet实现人民币大小写转换。 展开
 我来答
raymond418
2008-06-27 · TA获得超过169个赞
知道小有建树答主
回答量:310
采纳率:0%
帮助的人:199万
展开全部
public String GetBigMoney(double eSender)
{
double NewMoney;
int Index, len, flag;
String StrTemp = null;
char[] p;
String Number[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
String MonetaryUnit[] = {"万","仟","佰","拾","亿","仟","佰","拾","万","仟","佰","拾","元","角","分"} ;
NewMoney = Math.abs(eSender);
System.out.println(NewMoney);
DecimalFormat deciformat;
deciformat=(DecimalFormat)DecimalFormat.getInstance();
deciformat.applyPattern("#######");
String m = java.lang.String.valueOf(deciformat.format(NewMoney * 100));
int i;
if((i = m.indexOf('.')) != -1)
m = m.substring(0, i);
p = new char[m.length()];
//p = new char[40];
m.getChars(0, m.length(), p, 0);
//len=m.length();
if (NewMoney > 100000000000.00) {
StrTemp = ""; // FloatAsComma( NewMoney, False );
return StrTemp;
}
if (NewMoney < 0.01) {
StrTemp = "零";
return StrTemp;
}
if (eSender<0) {
StrTemp = "负";
}
else {
StrTemp = "";
}
flag = 1;
len =p.length;
System.out.println("1111");
System.out.println(len);
for (Index=(15-len);Index<15;Index++)
{
if (p[Index - 15 + len]!='0')
{
StrTemp = StrTemp + Number[Integer.parseInt(String.valueOf(p[Index-15+len]))];
StrTemp = StrTemp + MonetaryUnit[Index];
}
else
{
if (Index == 5)
{
if ((p[Index - 14 + len]!= '0') || (p[Index-13+len] != '0'))
{
StrTemp = StrTemp + MonetaryUnit[Index + 3];
flag = 0;
}

}
else
{
if ((Index == 12) ||( (Index == 8) && (flag ==1)) || (Index == 4))
{
StrTemp = StrTemp + MonetaryUnit[Index];
}
if ((p[Index-15 + len] != '0') && (Index != 14))
{
StrTemp = StrTemp +Number[Integer.parseInt(String.valueOf(p[Index-15+len]))];
;
}
}
}
}
if (p[m.length()-1] == '0')
{
StrTemp = StrTemp + "整";
}
return StrTemp;
}
愿做无聊听众6
2015-09-28 · TA获得超过107个赞
知道小有建树答主
回答量:109
采纳率:100%
帮助的人:66.8万
展开全部
//给你的简单的万位整数转换,接下来思考一下吧
package com.ldc.test;

import java.util.Scanner;

/**
*
* @author 愿做无聊听众6
*
*/
public class Test {
public static void main(String[] args) {
String[] str = "零,壹,贰,叁,肆,伍,陆,柒,捌,玖,拾,佰,仟,万,亿,圆".split("\\,");
String[] str2 = "拾,佰,仟,万,亿".split("\\,");
Scanner scan = new Scanner(System.in);
int input = scan.nextInt();
String money=String.valueOf(input);
StringBuffer sbf = new StringBuffer();
for (int i = money.length(); i >0 ; i--) {
if(sbf.length()==0){
sbf.insert(0,"圆整");
}else{
sbf.insert(0,str2[money.length()-i-1]);
}
sbf.insert(0,str[Integer.parseInt(String.valueOf(money.charAt(i-1)))]);

}

System.out.print(sbf);

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
本为凡人
推荐于2016-04-02 · TA获得超过666个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:139万
展开全部
我觉得那小写钱数转换成String 然后再一个数字一个数字的取 并算数小数点前的数字个数
之后写个方法分别把0-9的数字转换成汉字
利用小数点前的个数决定分别汉字后插入 百 十 个
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
andylee1988
2008-06-27 · TA获得超过554个赞
知道小有建树答主
回答量:297
采纳率:0%
帮助的人:223万
展开全部
public class Rmb {
public static String ZhuanHuan(int x)
{
String y="请输入3位数";
if(x==0)
{
y="零";
}
if(x==1)
{
y="壹";
}
if(x==2)
{
y="贰";
}
if(x==3)
{
y="叁";
}
if(x==4)
{
y="肆";
}
if(x==5)
{
y="伍";
}
if(x==6)
{

y="陆";
}
if(x==7)
{
y="柒";
}
if(x==8)
{
y="捌";
}
if(x==9)
{
y="玖";
}

return y;
}

public static void main(String[] args) {

Integer a=Integer.valueOf(args[0]);
int b=a.intValue();
System.out.println(b+"元");
int c=(int)(b/100);
int d=(int)((b-100*c)/10);
int e=(int)(b-(100*c+10*d));
String c1,d1,e1;
c1=ZhuanHuan(c);
d1=ZhuanHuan(d);
e1=ZhuanHuan(e);
System.out.println(c1+"百"+d1+"十"+e1+"元");

}

}

测试:
java Rmb 123得结果:
123元
壹百贰十叁元

可以根据这个代码改一改嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友68ebec1
2008-06-27 · TA获得超过757个赞
知道小有建树答主
回答量:832
采纳率:0%
帮助的人:543万
展开全部
自己写个算法贝。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式