注册
 找回密码
 注册
江西广告网
查看: 306|回复: 0
打印 上一主题 下一主题

JAVA应用:

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2009-1-7 10:26:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
读入一个浮点数值,将其转化为金额的中文大写方式.   试验要求:   当金额为整数时,只表示整数部分,省略小数部分,并添加"整"字.   当金额中含有连续的0时,只需要一个"零"即可.   10的表示方式.例如110--壹佰一拾元整,10---一拾元整   -------------------------------------------------------------------------------- 1import java.io.*;   2class chineseMoney...{   3 private String number[]=...{"","壹","贰","叁","肆","伍","陆","柒","捌","玖"};   4 private String unit[]=...{"","拾","佰","仟"};   5 private String small[]=...{"角","分"};   6 //private String strNumber,strUnit,strAll;   7   8 //是否在number中   9 private boolean IsInNumber(String strNumber)   10 ...{   11 boolean inNumber=false;   12 for (int i=0;i<9;i )   13 ...{   14 if (strNumber.compareTo (number[i])==0) inNumber=true;   15 }   16 return inNumber;   17 }   18   19   20 private String SplitChineseNumber(int intUnit,String strInt)   21 ...{   22 int l=strInt.length ();   23 int j,k,zeorCountTemp=0;   24 String strUnit="",strNumber="",strAll="";   25   26 //判断在千万到万位 是否全为0,是的话,不返回“万”,返回“”;   27 boolean temp=false;   28 for (k=0;k29 ...{   30 String strTemp=strInt.substring(k,k 1);   31 int intTemp=Integer.parseInt(strTemp);   32   33 if (intTemp!=0) temp=true;   34 }   35 if (temp==false)   36 ...{   37 if (intUnit==5)return "";   38 }   39   40   41 int checkK=0;   42 //正式开始转换   43 for (k=0;k44 ...{   45 String strTemp=strInt.substring(k,k 1);   46 int intTemp=Integer.parseInt(strTemp);   47 strNumber= number[intTemp];   48   49 //j 从   50 j=l-1-k;   51   52 strUnit=unit[j];   53   54   55 //数值 单位   56 //如果数值=0,数值=“”   57 if (intTemp==0)   58 ...{   59 //   60 if (zeorCountTemp==0)   61 ...{   62 //单位=零   63 strUnit=strUnit.replace(''''拾'''',''''零'''');   64 strUnit=strUnit.replace(''''佰'''',''''零'''');   65 strUnit=strUnit.replace(''''仟'''',''''零'''');   66 }   67 else   68 ...{   69 //多零情况下,单位=“”   70 strUnit=strUnit.replaceAll("拾","");   71 strUnit=strUnit.replaceAll("佰","");   72 strUnit=strUnit.replaceAll("仟","");   73 }   74 zeorCountTemp ;   75 }   76 checkK=k;   77 strAll =strNumber strUnit;   78 }   79   80 return strAll;   81 }   82   83 private String onlyInt(int intInt)   84 ...{   85 String strInt;   86 strInt=String.valueOf(intInt);   87 int l=strInt.length();   88   89 String strAll="";   90 //按照四位 一分隔 来计算   91 if (l>8)//亿   92 ...{   93 strAll =this.SplitChineseNumber(9,strInt.substring(0,l-8)) "亿";   94 strAll =this.SplitChineseNumber(5,strInt.substring(l-8,l-4));   95 strAll =this.SplitChineseNumber(1,strInt.substring(l-4,l)) "元";   96 }   97 else if (l>4)//万   98 ...{   99 strAll =this.SplitChineseNumber(5,strInt.substring(0,l-4));   100 strAll =this.SplitChineseNumber(1,strInt.substring(l-4,l)) "元";   101   102 }   103 else if (l>0)   104 ...{   105 strAll =this.SplitChineseNumber(1,strInt) "元";   106 }   107//   108//   109//   110//   111// 100101000   112 int checkL=strAll.length();   113   114 char strTemp2;   115 for (int k=1;k116 ...{   117 strTemp2=strAll.charAt(k);   118 if (strTemp2==''''零'''')   119 ...{   120 //判断零的前后是否有数字,无数字则删除这个零   121 String strBeforeTemp=strAll.substring(k-1,k);   122 String strAfterTemp=strAll.substring(k 1,k 2);   123 if (!this.IsInNumber(strBeforeTemp)&&!this.IsInNumber(strAfterTemp))   124 ...{   125 strBeforeTemp=strAll.substring(0,k);   126 strAfterTemp=strAll.substring(k 1,checkL);   127 strAll= strBeforeTemp strAfterTemp;   128 break;   129 }   130   131 }   132 }   133   134 return strAll;   135   136 }   137   138 private String onlySmall(int intSmall)   139 ...{   140 String strNumber,strUnit,strAll;   141 strNumber="";strUnit="";strAll="";   142 String strSmall,strTemp;   143 strSmall=String.valueOf(intSmall);   144 int i;   145 if (intSmall>=10)   146 ...{   147 for (i=0;i148 ...{   149 strTemp=String.valueOf(intSmall).substring(i,i 1);   150 if (Integer.parseInt(strTemp)!=0)   151 ...{   152 strNumber=number[Integer.parseInt(strTemp)];   153 strUnit=small[i];   154 strAll =strNumber strUnit;   155 }   156 }   157 }   158 else   159 ...{   160 if (intSmall!=0)   161 ...{   162 strNumber=number[intSmall];   163 strUnit=small[1];   164 strAll =strNumber strUnit;   165 }   166 }   167   168 return strAll;   169 }   170   171 public String getChineseMoney(double number)   172 ...{   173 //四舍五入   174 number=(number*100 0.5)/100;   175   176 String strAll,strChineseInt,strChineseSmall,strZheng;;   177 int intInt,intSmall;   178 strChineseInt="";strChineseSmall="";strZheng="";   179   180 //整数部分   181 intInt=(int)( number*100/100);   182 if (intInt!=0)   183 ...{   184 strChineseInt=onlyInt(intInt);   185 }   186 //小数部分   187 double temp=(number-intInt)*100*100/100;   188 //对小数部分四舍五入   189 intSmall=(int)(temp*100 0.5)/100;   190 if (intSmall!=0)   191 ...{   192 strChineseSmall=onlySmall(intSmall);   193 }   194 else   195 ...{   196 strZheng="整";   197 }   198 strAll=strChineseInt strChineseSmall strZheng;   199 return strAll;   200 }   201 public static void main(String args[]) throws IOException   202 ...{   203 chineseMoney cm=new chineseMoney();   204 double money;   205 String strMoney,strChineseMoney;   206 strMoney="";   207 //读取   208 System.out.println("输入货币(四舍五入):");   209 BufferedReader cin = new BufferedReader(new InputStreamReader( System.in));   210 strMoney = cin.readLine();   211 money=Double.parseDouble(strMoney);   212 //money=12346.465;//Double.parseDouble(strMoney);   213 strChineseMoney=cm.getChineseMoney(money);   214 System.out.println(strChineseMoney);   215 }   216}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表