最近刚接触java,应老师要求写了几行,主要目的是输入钱数然后输出每张面额的有几张。
跑了几次试试,发现输入一些数时,不能正确输出张数,如256.33 , 300.33等。不知道哪写错了,大侠们帮忙看看。
还有,自己把这个放到applet里的时候,只能输出一行,而张数要很多行才能输出完,高人们也帮下忙?兄弟刚刚注册,没什么分,在这先谢大家。package moneycounter;
import java.util.*;
class MoneyCoutnter{
public void count (float n)
{ int m=(int)(n*100);
int []a = new int [] {10000,5000,2000,1000,500,200,100,50,20,10,5,2,1};
String []str = {"100元的","50元的","20元的","10元的","5元的","2元的","1元的","5角的","2角的","1角的","5分的","2分的","1分的"};
int i=0;
while (i<13)
{
if(i!=0)
{ int sum=0;
sum=(int)((m=m%a[i-1])/a[i]);
System.out.println(str[i]+"的有"+sum+"张");
i++;
}
else {
int sum=0;
sum=(int)(m/a[0]);
System.out.println("100的有"+sum+"张");
i++;
}
}
}
}public class Count {
public static void main(String[] args) {
System.out.println("输入金额");
Scanner sc = new Scanner(System.in);
float dol = sc.nextFloat();
MoneyCoutnter co=new MoneyCoutnter();
co.count(dol);
}}
跑了几次试试,发现输入一些数时,不能正确输出张数,如256.33 , 300.33等。不知道哪写错了,大侠们帮忙看看。
还有,自己把这个放到applet里的时候,只能输出一行,而张数要很多行才能输出完,高人们也帮下忙?兄弟刚刚注册,没什么分,在这先谢大家。package moneycounter;
import java.util.*;
class MoneyCoutnter{
public void count (float n)
{ int m=(int)(n*100);
int []a = new int [] {10000,5000,2000,1000,500,200,100,50,20,10,5,2,1};
String []str = {"100元的","50元的","20元的","10元的","5元的","2元的","1元的","5角的","2角的","1角的","5分的","2分的","1分的"};
int i=0;
while (i<13)
{
if(i!=0)
{ int sum=0;
sum=(int)((m=m%a[i-1])/a[i]);
System.out.println(str[i]+"的有"+sum+"张");
i++;
}
else {
int sum=0;
sum=(int)(m/a[0]);
System.out.println("100的有"+sum+"张");
i++;
}
}
}
}public class Count {
public static void main(String[] args) {
System.out.println("输入金额");
Scanner sc = new Scanner(System.in);
float dol = sc.nextFloat();
MoneyCoutnter co=new MoneyCoutnter();
co.count(dol);
}}
{ int sum=0;
sum=(int)((m=m%a[i-1])/a[i]); //好像有问题 sum=(int)(m/a[i]);//改为这两句
m=m-sum*a[i]; System.out.println(str[i]+"的有"+sum+"张");
i++;
}
else {
int sum=0;
sum=(int)(m/a[0]); //加上这一句
m=m-sum*a[0]; System.out.println("100的有"+sum+"张");
i++;
}