人民币金额的中文大写形式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目描述:

读入一个浮点数值,将其转化为中文金额的大写形式。如123.45,转化为:壹佰贰拾叁元肆角伍分。编写程序,针对以下多种数据情况进一步完善程序。

1.当金额为整数时,只表示整数部分,并添加“整”字。如123表示为:壹佰贰拾叁元整。

2.当金额中含有连续的0时,只需写一个“零”即可。如10005表示为:壹万零伍元整。

3.10的表示形式。如110表示为:壹佰壹拾元整。而10则表示为:拾元整。

代码为:

import java.util.Scanner;

public class P63

{

//将数字大写

public static String a(char i)

{

switch(i)

{

case '1':

return "壹";

case '2':

return "贰";

case '3':

return "叁";

case '4':

return "肆";

case '5':

return "伍";

case '6':

return "陆";

case '7':

return "柒";

case '8':

return "捌";

case '9':

return "玖";

}

return " ";

}

//处理万、亿

public static String c(int i)

{

String c = "";

int j;

if(i % 2 != 0)

c = "万"+c;

for(j = i/2;j > 0;j--)

c = "亿" + c;

return c;

}

//返回单位

public static String b(int i)

{

switch(i%4)

{

case 1:

return c(i/4);

case 2:

return "拾";

case 3:

return "佰";

case 0:

return "仟";

}

return " ";

}

public static void main(String[] args)

{

String result ="";

int j,i = 0;

Scanner in = new Scanner(System.in);

System.out.print("请输入你要转换大写的人民币金额:"); //输入人民币金额并赋值给f

String f = in.nextLine();

//用"."切割f,并赋值给s

String[] s=f.split("\\.");

while(i < s[0].length())

{

if(s[0].charAt(i)=='0')

{

//判断是否返回万、亿、万亿……

if((s[0].length()-i)%4==1&&i!=s[0].length()-1) for(j = i-1;j >= 0&&j > i-4;j--)

if(s[0].charAt(j)!='0')

result += b(s[0].length()-i);

i++;

while(i < s[0].length())

{

if(s[0].charAt(i)!='0')

{

result+="零"+a(s[0].charAt(i))+b(s[0].length()-i); break;

}

i++;

}

}

else

{

result+=a(s[0].charAt(i))+b(s[0].length()-i);

}

i++;

}

if(result.trim().length()==2)

result = result.replaceAll("壹拾", "拾");

result = result.replaceAll("零壹拾", "零拾");

System.out.print("转换后的大写为:");

Double n =Double.parseDouble(s[0]);

double d =Double.parseDouble(f);

if(n == d )

System.out.println(result.trim()+"元整");

else

{

result+="元";

if(s[1].charAt(0)!='0')

result+=a(s[1].charAt(0))+"角";

else

result+="零";

if(s[1].length()>=2)

if(s[1].charAt(1)!='0')

result+=a(s[1].charAt(1))+"分"; System.out.println(result.trim()); }

}

}

相关文档
最新文档