追女绝招!# Joke - 肚皮舞运动
m*y
1 楼
找零钱问题,可是最后那一分的有时候不准确,不知道为什么,请大牛们帮忙,谢了!
public class ChangeMoney
{
public static int[] changeMoney(double input, double price)
{
double deno[] =
{
10, 5, 1, 0.25, 0.10, 0.05, 0.01
};
int[] result = new int[deno.length];
double change = input - price;
for (int i = 0; i < deno.length; i++)
{
if (change / deno[i] > 1)
{
result[i] = (int) (change / deno[i]);
change = (double) (change - result[i]*deno[i]);
}
}
return result;
}
public static void main(String[] args)
{
int[] result = changeMoney(10, (double) 7.57);
for(int i: result)
System.out.print(i+" ");
}
}
不知道是哪里的精度出了问题,最后少找一分钱。。。
public class ChangeMoney
{
public static int[] changeMoney(double input, double price)
{
double deno[] =
{
10, 5, 1, 0.25, 0.10, 0.05, 0.01
};
int[] result = new int[deno.length];
double change = input - price;
for (int i = 0; i < deno.length; i++)
{
if (change / deno[i] > 1)
{
result[i] = (int) (change / deno[i]);
change = (double) (change - result[i]*deno[i]);
}
}
return result;
}
public static void main(String[] args)
{
int[] result = changeMoney(10, (double) 7.57);
for(int i: result)
System.out.print(i+" ");
}
}
不知道是哪里的精度出了问题,最后少找一分钱。。。