题目要求:
1,编写一个整钱兑零程序,该程序能够将用double类型表达的钱数兑换成相应的硬币,要求精确到分。(硬币的面值有1元、5角、1角、5分、2分、1分,如果输入:12.53,结果应该为:(1元)12,(5角)1,(1角)0,(2分)1,(1分)1 .import javax.swing.*;
public class MoneyChange
{
public static void main(String[] args)
{
int a,b,c;
String amountString=JOptionPane.showInputDialog(null,"请输入钱数","整钱兑零",JOptionPane.QUESTION_MESSAGE);
double amount=Double.parseDouble(amountString);
a=(int)amount;
System.out.println("(1元)"+a);
b=(int)(((amount-a)*10)/1);
c=(int)((amount-a-b*0.1)*100);
if(b<5)
System.out.println("(1角)"+b);
else if(b==5)
System.out.println("(5角)1");
else
{
System.out.println("(5角)1");
System.out.println("(1角)"+(b-5));
}
if(c<2&&c>0)
System.out.println("(1分)1");
else if(c==2)
{
System.out.println("(2分)1");
}
else
{
System.out.println("(2分)"+(c/2));
System.out.println("(1分)"+(c%2));
}
}
}
问题是:当我输入18.88时,
结果是:
(1元)18
(5角)1
(1角)3
(2分)3
(1分)1
不符合要求,改了半天,仍不见效,本人是初学者,请各位前辈帮助.谢谢.
1,编写一个整钱兑零程序,该程序能够将用double类型表达的钱数兑换成相应的硬币,要求精确到分。(硬币的面值有1元、5角、1角、5分、2分、1分,如果输入:12.53,结果应该为:(1元)12,(5角)1,(1角)0,(2分)1,(1分)1 .import javax.swing.*;
public class MoneyChange
{
public static void main(String[] args)
{
int a,b,c;
String amountString=JOptionPane.showInputDialog(null,"请输入钱数","整钱兑零",JOptionPane.QUESTION_MESSAGE);
double amount=Double.parseDouble(amountString);
a=(int)amount;
System.out.println("(1元)"+a);
b=(int)(((amount-a)*10)/1);
c=(int)((amount-a-b*0.1)*100);
if(b<5)
System.out.println("(1角)"+b);
else if(b==5)
System.out.println("(5角)1");
else
{
System.out.println("(5角)1");
System.out.println("(1角)"+(b-5));
}
if(c<2&&c>0)
System.out.println("(1分)1");
else if(c==2)
{
System.out.println("(2分)1");
}
else
{
System.out.println("(2分)"+(c/2));
System.out.println("(1分)"+(c%2));
}
}
}
问题是:当我输入18.88时,
结果是:
(1元)18
(5角)1
(1角)3
(2分)3
(1分)1
不符合要求,改了半天,仍不见效,本人是初学者,请各位前辈帮助.谢谢.
解决方案 »
- 两个 JVM 通信 问题?
- 一个关于线程的问题
- 请教一个URL正则表达式的问题
- 关于使用Class.forName()的问题,高手请进!!解决送分
- 问大家一个问题
- 关于java变量的一个疑问
- 继承:子类的构造函数调用super()有什么意义?
- IE5.0不支持applet吗?必须用java plug-in插件才可看到统计图吗?
- 如何把ascii值转化成字符,字符串中如何包含一个双引号?
- 请教,接口的概念
- 关于 public private proteceted String StringBuffer ……的问题!请进!谢谢
- 网页 右下角那个 “我的新鲜事” XXX人回复了你的帖子 的 小页面 怎么删掉啊? 烦死了!!!!
参考一下别人写的这个
http://blog.csdn.net/tomison/archive/2007/06/30/1672961.aspx你的程序好像没有对5分钱的情况进行处理!~~
double money=Double.parseDouble(s);
int yuan=(int)money/1;
System.out.print(yuan+" 个元 ");
money=(money-yuan)*10;
int fiveJiao=(int)money/5;
System.out.print(fiveJiao+" 个5角 ");
money=money-(fiveJiao*5);
int oneJiao=(int)money/1;
System.out.print(oneJiao+" 个1角 ");
money=money-(oneJiao*1);
money=money*10;
int fiveFeng=(int)money/5;
money=money-5*fiveFeng;
System.out.println(fiveFeng+" 个5分 ");
int oneFeng=(int)money/1;
System.out.println(oneFeng+" 个1分 ");
String s="180.27";
double money=Double.parseDouble(s);
int yuan=(int)money/1;
System.out.print(yuan+" 个元 ");
money=(money-yuan)*10;
int fiveJiao=(int)money/5;
System.out.print(fiveJiao+" 个5角 ");
money=money-(fiveJiao*5);
int oneJiao=(int)money/1;
System.out.print(oneJiao+" 个1角 ");
money=money-(oneJiao*1);
money=money*10;
int fiveFeng=(int)money/5;
money=money-5*fiveFeng;
System.out.println(fiveFeng+" 个5分 ");
int twoFeng=(int)money/2;
money=money-2*twoFeng;
System.out.print(twoFeng+" 个2分 ");
int oneFeng=(int)money/2;
System.out.println(oneFeng+" 个1分 ");
public class MoneyChange {
public static void main(String[] args) {
double a,b,c,d,e;
String amountString=JOptionPane.showInputDialog(null,"请输入钱数","整钱兑零",JOptionPane.QUESTION_MESSAGE);
double amount=Double.parseDouble(amountString);
a=(int)amount;
b=(int)((amount-a)*2);
c=(int)((amount-a-b/2)*10);
d=(int)((amount-a-b/2-c/10)*50);
e=Math.rint(((amount-a-b/2-c/10-d/50)*100));
System.out.println("(1元)"+a);
System.out.println("(5角)"+b+" "+((amount-a)*2));
System.out.println("(1角)"+c+" "+(amount-a-b/2));
System.out.println("(2分)"+d);
System.out.println("(1分)"+e);
}
}
public class MoneyChange {
public static void main(String[] args) {
double a,b,c,d,e;
String amountString=JOptionPane.showInputDialog(null,"请输入钱数","整钱兑零",JOptionPane.QUESTION_MESSAGE);
double amount=Double.parseDouble(amountString);
a=(int)amount;
b=(int)((amount-a)*2);
c=(int)((amount-a-b/2)*10);
d=(int)((amount-a-b/2-c/10)*50);
e=Math.rint(((amount-a-b/2-c/10-d/50)*100));
System.out.println("(1元)"+a);
System.out.println("(5角)"+b+" "+((amount-a)*2));
System.out.println("(1角)"+c+" "+(amount-a-b/2));
System.out.println("(2分)"+d);
System.out.println("(1分)"+e);
}
}
String s="123.65";
double money=Double.parseDouble(s);
money=money*100;
int yuan=(int)money/100;
System.out.print(yuan+"个元 ");
money=money-yuan*100;
int fiveJiao=(int)money/50;
System.out.print(fiveJiao+"个5角 ");
money=money-fiveJiao*50;
int oneJiao=(int)money/10;
money=money-oneJiao*10;
System.out.print(oneJiao+"个1角 ");
int fiveFen=(int)money/5;
money=money-fiveFen*5;
System.out.print(fiveFen+"个5分 ");
int twoFen=(int)money/2;
money=money-twoFen*2;
System.out.print(twoFen+"个2分 ");
int oneFen=(int)money/1;
System.out.print(oneFen+"个1分 ");