【发布时间】:2019-10-03 06:51:02
【问题描述】:
您好,我正在尝试制定一种方法,可以为您提供数百、50、20、10、5、1 以及 25 美分硬币和 5 美分硬币的变化。用户提供输入,它应该看起来像这样:6.87 1 五 1 一 3 Quarters 1 dime 2 pennies
到目前为止,我的代码如下:
import java.util.Scanner;
/**
*
* @author Cjespinomartine
*/
public class Assignment04 {
public static void main(String[]args) {
Scanner stdin = new Scanner(System.in);
System.out.println("Enter your amount");
double amount = stdin.nextDouble();
double remainder = Math.round(amount * 100);
double hundreds = remainder / 1000;
remainder = remainder / 1000;
double fifties = remainder / 500;
remainder = remainder / 500;
double twenties = remainder / 200;
remainder = remainder % 200;
/*
double fives = remainder / 5;
remainder = remainder % 5;
double ones = remainder / 1;
remainder = remainder % 1;
double quarters = remainder / .25;
remainder = remainder % .25;
double dimes = remainder / .10;
remainder = remainder %10;
double nickels = remainder / .5;
remainder = remainder % .5;
double pennies = remainder;
*/
System.out.println(hundreds + "hundred/s");
System.out.println(fifties + "fiftie/s");
System.out.println(twenties + "twentie/s");
/* System.out.println(fives + "five/s");
System.out.println(ones + "one/s");
System.out.println(quarters + "quarter/s");
System.out.println(dimes + "dime/s");
System.out.println(nickels + "nickel/s");
System.out.println(pennies + "cent/s");
*/
}
}
它不会按顺序分发零钱,而是分发数百个。我评论了一些变化,因为我试图让数学正确。我认为如果需要,如果需要,如果需要,你能帮我弄清楚我把它放在哪里。任何帮助都将意味着很多我非常卡住谢谢。
【问题讨论】:
-
问题一:千万不要用浮点类型来表示钱。
-
使用行为驱动开发 (BDD) 语法表达您希望它执行的操作可能会有所帮助,请参阅 cucumber.io/docs/guides/10-minute-tutorial
-
我将首先在列表中定义可用货币,然后循环该列表。
-
如果您需要打印名称(例如一角钱),您可能需要地图而不是列表。
-
Math.round(double)返回一个long无论如何你都想使用它:long value = Math.round(amount)
标签: java