m*****y 发帖数: 42 | 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+" ");
}
}
不知道是哪里的精度出了问题,最后少找一分钱。。。 | j*p 发帖数: 115 | 2 都乘100用整形
【在 m*****y 的大作中提到】 : 找零钱问题,可是最后那一分的有时候不准确,不知道为什么,请大牛们帮忙,谢了! : 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];
| m*****y 发帖数: 42 | 3
恩
好主意。。。。
【在 j*p 的大作中提到】 : 都乘100用整形
|
|