Java将控制台输入的人民币数字金额转化为大写

作者&投稿:营罚 (若有异议请与网页底部的电邮联系)
编程实现,输入一个人民币小写金额值,转化为大写金额值输出。先实现基本功能~

这是我用c做的,基本上可以完成你所需要的功能。
#include
void xs(int a)
{
if(a==0) printf("零");
else if(a==1) printf("壹");
else if(a==2) printf("贰");
else if(a==3) printf("叁");
else if(a==4) printf("肆");
else if(a==5) printf("伍");
else if(a==6) printf("陆");
else if(a==7) printf("柒");
else if(a==8) printf("捌");
else if(a==9) printf("玖");

}

void main()
{
int y=1;
while(y)
{
double i;
int j,j1;
int k,k1;
int m,m1;
int n,n1;
int g,g1;
int h,h1;
printf("请输入人民币小写数额:");
printf("
");
scanf("%lf",&i);
//万以上部分
j1=(int)i/10000000;
k1=(int)i%10000000/1000000;
m1=(int)i%10000000%1000000/100000;
n1=(int)i%10000000%1000000%100000/10000;
//万以下部分
j=(int)i%10000000%1000000%100000%10000/1000;
k=(int)i%1000/100;
m=(int)i%1000%100/10;
n=(int)i%1000%100%10;
//小数部分
g=(int)(i*10)%10000%1000%100%10;
h=(int)(i*100)%100000%10000%1000%100%10;
if(i>=10000&&i<100000000)
{
printf("转化为大写金额应为:
");
xs(j1);
printf("仟");
xs(k1);
printf("佰");
xs(m1);
printf("拾");
xs(n1);
printf("万");
xs(j);
printf("仟");
xs(k);
printf("佰");
xs(m);
printf("拾");
xs(n);
printf("元");
xs(g);
printf("角");
xs(h);
printf("分");
printf("
");
}
else if(i=0)
{
printf("转化为大写金额应为:
");
xs(j);
printf("仟");
xs(k);
printf("佰");
xs(m);
printf("拾");
xs(n);
printf("元");
xs(g);
printf("角");
xs(h);
printf("分");
printf("
");

}
else
printf("您所输入的数值超出范围!!
");
printf("输入1重新开始
");
printf("输入0结束程序
");
scanf("%d",&y);
printf("
");
printf("
");
}


}

import java.util.HashMap;
import java.util.Scanner;

public class Convert {
public static void main(String[] args) {
HashMap hashMap = new HashMap();
hashMap.put(0, "零");
hashMap.put(1, "壹");
hashMap.put(2, "贰");
hashMap.put(3, "叁");
hashMap.put(4, "肆");
hashMap.put(5, "伍");
hashMap.put(6, "陆");
hashMap.put(7, "柒");
hashMap.put(8, "捌");
hashMap.put(9, "玖");
Scanner scanner = new Scanner(System.in);
String input = scanner.next();
for (int i = 0; i < input.length(); i++) {
System.out.print(hashMap.get(input.charAt(i) - 48));
}
}
}

代码如下:
/**
* 人民币转成大写
*
* @param value
* @return String
*/
public static String hangeToBig(double value)
{
char[] hunit = { '拾', '佰', '仟' }; // 段内位置表示
char[] vunit = { '万', '亿' }; // 段名表示
char[] digit = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; // 数字表示
long midVal = (long) (value * 100); // 转化成整形
String valStr = String.valueOf(midVal); // 转化成字符串
String head = valStr.substring(0, valStr.length() - 2); // 取整数部分
String rail = valStr.substring(valStr.length() - 2); // 取小数部分
String prefix = ""; // 整数部分转化的结果
String suffix = ""; // 小数部分转化的结果
// 处理小数点后面的数
if (rail.equals("00"))
{ // 如果小数部分为0
suffix = "整";
}
else
{
suffix = digit[rail.charAt(0) - '0'] + "角" + digit[rail.charAt(1) - '0'] + "分"; // 否则把角分转化出来
}
// 处理小数点前面的数
char[] chDig = head.toCharArray(); // 把整数部分转化成字符数组
char zero = '0'; // 标志'0'表示出现过0
byte zeroSerNum = 0; // 连续出现0的次数
for (int i = 0; i < chDig.length; i++)
{ // 循环处理每个数字
int idx = (chDig.length - i - 1) % 4; // 取段内位置
int vidx = (chDig.length - i - 1) / 4; // 取段位置
if (chDig[i] == '0')
{ // 如果当前字符是0
zeroSerNum++; // 连续0次数递增
if (zero == '0')
{ // 标志
zero = digit[0];
}
else if (idx == 0 && vidx > 0 && zeroSerNum < 4)
{
prefix += vunit[vidx - 1];
zero = '0';
}
continue;
}
zeroSerNum = 0; // 连续0次数清零
if (zero != '0')
{ // 如果标志不为0,则加上,例如万,亿什么的
prefix += zero;
zero = '0';
}
prefix += digit[chDig[i] - '0']; // 转化该数字表示
if (idx > 0)
prefix += hunit[idx - 1];
if (idx == 0 && vidx > 0)
{
prefix += vunit[vidx - 1]; // 段结束位置应该加上段名如万,亿
}
}
if (prefix.length() > 0)
prefix += '圆'; // 如果整数部分存在,则有圆的字样
return prefix + suffix; // 返回正确表示
}

import java.text.*;
import java.util.Scanner;
/**
* @作者:智鸱儿-zhichier
* @version 1.0 己丑年八月初三-2009/09/21
*/
public class RenminbiZhuanhuan {

/**
*
*/
public RenminbiZhuanhuan() {
// TODO Auto-generated constructor stub
}

/**
* @param args
*/
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("请输入你要转换的金额:");
double number=s.nextDouble();
String s1=zhuanhuan(new Double(number));
System.out.println("转换成大写后的金额是:"+s1);
// TODO Auto-generated method stub

}
public static String zhuanhuan(Object ob){
String s=new DecimalFormat("#.00").format(ob);
s=s.replaceAll("\\.", "");//将字符串中的"."去掉
char d[]={ '零', '一', '两', '三', '四',
'五', '六', '七', '八', '九'};
String unit="仟佰拾兆仟佰拾亿仟佰拾万仟佰拾元角分";
int c=unit.length();
StringBuffer sb=new StringBuffer(unit);
for(int i=s.length()-1;i>=0;i--){
sb.insert(c-s.length()+i,d[s.charAt(i)-0x30]);
}
s=sb.substring(c-s.length(),c+s.length());
s=s.replaceAll("零[仟佰拾]", "零").
replaceAll("零{2,}", "零").
replaceAll("零([兆万元Ԫ])", "$1").
replaceAll("零[角分]", "");
return s;
}

}

希望对你有帮助!

import java.util.*;
public class TestNum {

public static void main(String[] args) {
System.out.println("请输入要转化的数字?");
Scanner sc=new Scanner(System.in);
String msg=sc.nextLine();
String[] str={"分","角","元","十","百","千","万","十","百","千","亿"};
String[] str1={"零","一","二","三","四","五","六","七","八","九","十"};
String[] s=msg.split("\\.");
int j=0;
char temp;
int i;
int p;
for(i=s[0].length()+2,j=0;i>2;i--,j++){
temp=s[0].charAt(j);
String ss=String.valueOf(temp);
p=Integer.valueOf(ss);
System.out.print(str1[p]+str[i-1]);

}
if(s.length>1){
for(i=s[1].length(),j=0;i>0;i--,j++){
temp=s[1].charAt(j);
String ss=String.valueOf(temp);
p=Integer.valueOf(ss);
System.out.print(str1[p]+str[i-1]);
}
}

}

}
调试成功!

你是不会写还是要别人帮你写哦??

自己写哈

我反正不的帮帮人写的
不会就问

.直接写会很不好的...


如何提高CS.AVA这些射击游戏的FPS值呢?
玩这么大型的3D游戏时、 尽量把其他不必要的软件关闭。 杀软暂停使用、或者对你的游戏文件设置白名单。 不进行扫描、这样FPS值、会明显提高。 你电脑的内存是足够了、 但玩游戏时开全屏、 降低分辨率。 你也可以尽量把特效关闭、 也能够提高FPS值。 祝您游戏愉快。!麻烦采纳,谢谢!

Microsoft windows XP professional 版本 2002 service pack 3刚...
修复方法是找原版的系统安装盘(或者金手指V6那个pe启动界面里就带控制台修复)。这里说用系统盘的方法,把系统盘放入光驱,启动到安装界面,选择按R进入控制台修复,进入控制台后会出现提示符C:\\ 大家在这里输入 chkdsk -r 然后它就会自动检测并修复问题了,修复完成之后重新启动计算机就可以进入系统了,进入系统之后最好先...

java都是学习什么课程?
Java课程最重要的是学会如何利用学会的东西真正运用,也就是参与项目 当然,达到能够参与项目的能力之前个人一定要学会相应的基础知识 就从基础开始说起 Javase Java基础所包含的,Java零基础必备安装包、JavaSE301集、Java教程零基础2019、Java教程零基础2019(ava基础语法、面向对象、异常、数组、常用类、...

编写一个学生成绩管理系统
这么点人,不用数据库了,就直接输入吧,你要文件操作的自己加。依据题目就是控制台程序了,就是不用windows的窗口的。……当做是练习,分数实在不多啊。时间仓促,,,代码是c和c++的混合代码……不好意思啊。不理解10和2 有什么区别,为什么只计算不输出?我把10去掉了,8的分类标准也没给,,...

CS和CF我该选择哪个?
安装之后,你在和pod训练时,用控制台输入hs_mode 1的命令,此时你只有打中头他才会死,有助于爆头技术的提高,提高暴头的意识。 --手枪对m4这样的枪时,多采用偷袭和预位射击命中的方法,效果最好。 --手枪更多的是一个人单独的训练,枯燥的很,训练或者pub时,多用用手枪,打比赛时会增加不少信心。 mp5,m41,ak,...

学习Java需要学哪些内容?
学习Java之前先了解这些:第一:在如今这个Java的市场下,你如果太过于着急找工作而去学习,你一定找不到,有一个很简单的道理,任何东西求快没有用,首先你要把技术学的熟练。而不是指望自己看看视频,就能拿到高薪的工作。第二:如果没有一套系统的学习路线和方案,这看看,那里看看,依旧学了之后...

游戏蓝屏
修复方法是找原版的系统安装盘(或者金手指V6那个pe启动界面里就带控制台修复)。这里说用系统盘的方法,把系统盘放入光驱,启动到安装界面,选择按R进入控制台修复,进入控制台后会出现提示符C:\\ 大家在这里输入 chkdsk -r 然后它就会自动检测并修复问题了,修复完成之后重新启动计算机就可以进入系统了,...

CF游戏FPS低怎么办
方案二:更新显卡驱动 1.打开360软件管家在搜索栏中输入驱动人生进行搜索,点击下载,完成后点击安装键,按照提示完成安装 2.运行驱动人生选择推荐驱动,在下面的列表中找到显卡将前面的框框打√,然后点击一键更新,驱动更新完成后按照提示点击立即重启,电脑重启后驱动更新完成。方案三:调整显卡控制台 关闭...

...must be set when no Connection avalable
必须设置数据库驱动类型,告诉hibernate是要用哪个数据库,因为每个数据库的sql语法规则不一样,只有正确指定数据库类型配置,hibernate才能正常的转换相应的sql语句,正常执行到数据库;--- 你看看数据库是不是正常启动着呢,有可能是数据库关闭了

机器配置达标 出现MESSAGE是为什么?
这种现象导致“蓝屏”也比较常见。实践中经常遇到的是声卡或显示卡的设置冲突。在“控制面板”→“系统”→“设备管理”中检查是否存在带有黄色问号或感叹号的设备,如存在可试着先将其删除,并重新启动电脑,由Win9X自动调整,一般可以解决问题。若还不行,可手工进行调整或升级相应的驱动程序。"蓝屏"的...

汶川县17379453487: java怎么输出货币符号 -
郅军来比: public static void main(String... args) { // 人民币¥符号. System.out.println(Currency.getInstance("CNY").getSymbol(Locale.CHINA)); // 台币NT$符号.System.out.println(Currency.getInstance("TWD").getSymbol(Locale.TAIWAN)); // 美金$符号.System.out.println(Currency.getInstance("USD").getSymbol(Locale.US)); }

汶川县17379453487: 用C#语言对于用户从键盘输入的一个数字,编程输出这一数字的人民币金 -
郅军来比: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Print { const int ZS = 0; const int XS = 1; public static void Main(string[] args) { ...

汶川县17379453487: JAVA怎么将控制台输入的几个数求最大值,具体我有下面这段代码 -
郅军来比: import java.util.Scanner; public class NumTest { public static void main(String[] args){ double num = 0; double number; double max = 0; Scanner s = new Scanner(System.in); System.out.println("请输入你需要计算的个数:"); int n = s.nextInt()...

汶川县17379453487: java中要从控制台输入数字的代码怎么写 -
郅军来比: 如果要int类型,只要把double input = scanner.nextDouble();换为 int input = scanner.nextInt().同样适用于float, short byte等类型import java.util.Scanner;public class ABC { public static void main(String[] args) { double input = ...

汶川县17379453487: 用c#写一个程序要求在控制台输入串数字(有小数点),最后以显示人民币的方式输出 -
郅军来比: 1、限制数字:利用ASCII码 2、后两位:截取字符串 substring 3、一万亿,固定个数 下面说主要思路:假如是17046593.23 得到的结果应该是:壹仟柒佰零肆万六仟五佰九拾三元贰角三分17046593.00 得到的结果应该是:壹仟柒佰零肆万六仟...

汶川县17379453487: 在java里怎样才能将输入的数字赋值给已定义的数组? -
郅军来比: 楼主你是指通过 控制台输入数字赋给数组某意向吗? IO中 Scanner s= new Scanner(System.in); system.out.println("please input number!"); int n=s.nextInt(); int [] array=new int[5]; array[0]=n;

汶川县17379453487: 在java中怎么样把键盘输入到控制台的值保存到数据库里面,举个案例一定要有源代码 -
郅军来比: //获取键盘输入值Scanner s = new Scanner(System.in);String str = s.nextLine();//获取数据库连接public Connecti...

汶川县17379453487: C#控制台程序 输入一个万以内的数字,将它转换成中文大写的人民币数. -
郅军来比: static void Main(string[] args) { string c="NULL"; Console .WriteLine("请输入 10000以内的数字!"); string a = Console.ReadLine(); string[] dw = "仟,佰,拾,圆".Split(','); for (int i = 0; i{ if (a.Length == 4) c = dw[i]; if (a.Length == 3) c ...

汶川县17379453487: Java从控制台输入数据时,需要引用的类是 -
郅军来比: 一、使用标准输入串System.in //System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字 //System.in.read()返回一个整数 //必须初始化 //int read = 0; char read = '0'; System.out.println("输入数据:"); try { //...

汶川县17379453487: java在控制台输入一个数字然后输出这个数字的两倍.循环这个动作直到 -
郅军来比: 用while循环,之前定义一个boolean变量作为开关.while(boolean变量),用if判断如果输入exit变量变为false.循环结束.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网