import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
double a=input.nextDouble();
int b=(int)a/10;
int c=((int)a%10)/5;
int d=0;
if(c==0){
d=((int)a%10);
}
else {
d=((int)a%10)-5;
}
int e=(int)(a*100-b*1000-c*500-d*100);
int f=(int)e/50;
int j=((int)e%50)/10;
int h=((int)e%50)%10/2;
int i= (int) (e-f*50-j*10-2*h);
System.out.println(b+" 张十元");
System.out.println(c+" 张五元");
System.out.println(d+" 张一元");
System.out.println(f+" 个五角");
System.out.println(j+" 个一角");
System.out.println(h+" 个贰分");
System.out.print(i+" 个壹分");;
}
}
提交后显示部分错误
你这个程序输入9.87,得到的结果是
0 张十元
1 张五元
4 张一元
1 个五角
3 个一角
3 个贰分
0 个壹分
明显错了
原因是计算e的时候得到的结果是 86.99999999999989 强转之后就成了86。
所以说还是精度损失的问题。
报什么错