【发布时间】:2010-12-26 20:42:32
【问题描述】:
我正在做我的 Java 书的第一章练习,但我已经被一个问题困住了一段时间。我会打印问题,
提示/读取表示货币金额的双精度值。然后确定代表该金额所需的每张钞票和硬币的最少数量,从最高的开始(假设 10 美元钞票是所需的最大尺寸)。例如,如果输入的值是 47,63(四十七美元 63 美分),那么程序应该将等值的金额打印为:
- 四张十美元的钞票
- 1 张五美元的钞票
- 2 一美元的钞票
- 2 个季度
- 1 毛钱
- 0 镍
- 3 便士"
等等
我正在按照他们所说的那样做一个示例,以便获得一个想法,正如您将在代码中看到的那样。尽管如此,我还是设法打印了 4 美元,但我不知道如何获得 “1 5 美元”,只有 7 美元(见代码)。
请不要为我编写整个代码。我只是需要一些关于我所说的话的建议。谢谢。
import java.util.Scanner;
public class PP29 {
public static void main (String[] args) {
Scanner sc = new Scanner (System.in);
int amount;
double value;
double test1;
double quarter;
System.out.println("Enter \"double\" value: ");
value = sc.nextDouble();
amount = (int) value / 10; // 47,63 / 10 = 4.
int amount2 = (int) value % 10; // 47 - 40 = 7
quarter = value * 100; // 47,63 * 100 = 4736
int sum = (int) quarter % 100; // 4763 / 100 => 4763-4700 = 63.
System.out.println(amount);
System.out.println(amount2);
}
}
【问题讨论】: