科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Java 作业--试验一 金额的中文大写方式

Java 作业--试验一 金额的中文大写方式

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

试验要求: 当金额为整数时,只表示整数部分,省略小数部分,并添加"整"字. 当金额中含有连续的0时,只需要一个"零"即可. 10的表示方式.例如110--壹佰一拾元整,10---一拾元整

作者:allenle 来源:CSDN 2008年3月14日

关键字: 中文大写 金额 java

  • 评论
  • 分享微博
  • 分享邮件

题意:

读入一个浮点数值,将其转化为中文金额的大写方式.

试验要求:

当金额为整数时,只表示整数部分,省略小数部分,并添加"整"字.

当金额中含有连续的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    private String onlyInt(int intInt)
  9    {
10        String strInt;
11        strInt=String.valueOf(intInt);
12        strNumber="";strUnit="";strAll="";
13        int l=strInt.length ();
14        int j,k,zeorCount;
15        zeorCount=0;
16        for (k=0;k<l;k++)
17        {
18            String strTemp=strInt.substring(k,k+1);
19            int intTemp=Integer.parseInt(strTemp);
20            strNumber=number[intTemp];
21            j=l-1-k;
22            strUnit=unit[j];
23            if (intTemp==0)
24            {
25                if (zeorCount==0)
26                {
27                    strUnit=strUnit.replace('','');
28                    strUnit=strUnit.replace('','');
29                    strUnit=strUnit.replace('','');
30                    strUnit=strUnit.replace('','');   
31                }

32                else
33                {
34                    strUnit=strUnit.replaceAll("","");
35                    strUnit=strUnit.replaceAll("","");
36                    strUnit=strUnit.replaceAll("","");
37                    strUnit=strUnit.replaceAll("","");       
38                }

39                zeorCount++;
40            }
       
41            strAll+=strNumber+strUnit;
42        }

43        return strAll;
44   
45    }

46   
47    private String onlySmall(int intSmall)
48    {
49       
50        strNumber="";strUnit="";strAll="";
51        String strSmall,strTemp;
52        strSmall=String.valueOf(intSmall);
53        int i;
54        if (intSmall>=10)
55        {
56            for (i=0;i<strSmall.length();i++)
57            {
58                strTemp=String.valueOf(intSmall).substring(i,i+1);
59                if (Integer.parseInt(strTemp)!=0)
60                {
61                    strNumber=number[Integer.parseInt(strTemp)];
62                    strUnit=small[i];   
63                    strAll+=strNumber+strUnit;
64                }

65            }

66        }

67        else
68        {
69            if (intSmall!=0)
70            {
71                strNumber=number[intSmall];
72                strUnit=small[1];   
73                strAll+=strNumber+strUnit;
74            }

75        }

76
77        return strAll;
78    }

79   
80    public String getChineseMoney(double number)
81    {
82        //四舍五入
83        number=(number*100+0.5)/100;
84       
85        String strAll,strChineseInt,strChineseSmall,strZheng;;
86        int intInt,intSmall;
87        strChineseInt="";strChineseSmall="";strZheng="";
88       
89        //整数部分
90        intInt=(int)( number*100/100);
91        if (intInt!=0)
92        {
93            strChineseInt=onlyInt(intInt);
94        }

95        //小数部分
96        double temp=(number-intInt)*100*100/100;
97        //对小数部分四舍五入
98        intSmall=(int)(temp*100+0.5)/100;
99        if (intSmall!=0)
100        {
101            strChineseSmall=onlySmall(intSmall);
102        }

103        else
104        {
105            strZheng="";
106        }

107        strAll=strChineseInt+strChineseSmall+strZheng;
108        return strAll;
109    }

110    public static void main(String args[]) throws IOException
111    {
112        chineseMoney cm=new chineseMoney();
113        double money;
114        String strMoney,strChineseMoney;
115        strMoney="";
116        //读取
117        System.out.println("输入货币(四舍五入):");
118        BufferedReader cin = new BufferedReader(new InputStreamReader( System.in));
119        strMoney = cin.readLine();
120        money=Double.parseDouble(strMoney);
121        strChineseMoney=cm.getChineseMoney(money);
122        System.out.println(strChineseMoney);
123    }

124}

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章