人民币金额的中文大写形式题目描述:
读入一个浮点数值,将其转化为中文金额的大写形式。如123.45,转化为:壹佰贰拾叁元肆角伍分。编写程序,针对以下多种数据情况进一步完善程序。
1.当金额为整数时,只表示整数部分,并添加“整”字。如123表示为:壹佰贰拾叁元整。
2.当金额中含有连续的0时,只需写一个“零”即可。如10005表示为:壹万零伍元整。
3.10的表示形式。如110表示为:壹佰壹拾元整。而10则表示为:拾元整。
代码为:
import java.util.Scanner;
public class P63
{
//将数字大...
题目描述:
读入一个浮点数值,将其转化为中文金额的大写形式。如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());
}
}
}
本文档为【人民币金额的中文大写形式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。