【问题标题】:How do you get real number to dollar values你如何得到实数到美元的价值
【发布时间】:2015-09-27 21:22:29
【问题描述】:

我在编写程序代码时遇到问题,该程序读取一个数字,然后使用最少的钞票以 $ 值打印出该金额。这就是我能想到的全部。

    import java.util.Scanner;
import java.lang.Math;
public class Assignment3 {
public static void main(String[] args) {
     Scanner input = new Scanner(System.in);
     System.out.println("Enter amount) ");
     double amount = input.nextDouble();
     int amountInt = (int) (amount * 100);

    if(amount >= 100)
    {
            amount = amount % 100;
        }
    if(amount >= 50)
        {
            amount = amount % 50;
        }
    if(amount >= 20)
        amount= amount % 50;
        }
    if(amount >= 10) 
        amount= amount %10; 
        }
    if(amount >= 5) 
        amount= amount %5; 
        }
    if(amount >= 1) 
        amount = amount %1;
        }
    if(amount >= .25)
        amount =amount %.25;
        }
    if(amount >= .10)
        amount = amount %.10;
        }
    if(amount >= .05)
        amount = amount % .05;
        }
    if(amount >= .01) 
        amount = amount % .01;
        }

【问题讨论】:

  • 你会想研究使用一些模运算。
  • 您如何描述您的程序对 5 岁儿童的作用?把它写下来,然后逐步实现。

标签: java computer-science


【解决方案1】:

可以这样做:

int tmp;
if(amount >= 100)
    {
        tmp = (int) amount/100
        print tmp + "$100 bills"
        amount = amount % 100
    }
if(amount >= 50)
    {
        tmp = (int) amount/50
        print tmp + "$50 bills"
        amount = amount % 50
    }

我可以从您的命名中看出这是一项作业,因此您必须自己修复语法。对于较低的账单,您还需要继续这样做。

这里有一个解释。
如果数量等于或超过一百,我们将其除以一百并将其转换为 int。这将自动导致一百次上升到我们的数字中。所以对于 455,(int) 455/100 将是 4。我们打印它,并更新我们的数量。 amount % 100,从 amount 中减去 100,尽可能多次(在本例中为 4 次)。

我们继续这样做,打印美元钞票并更新我们的金额。

编辑: 澄清什么是做什么的,以及每个请求是如何工作的:

首先我们检查金额是否超过 100,因为 100 是最大的美元钞票。如果是我们这样做:
tmp = (int) amount/100
这是我们可以从金额中减去 100 的次数,我们保存这个值。如果 amount 是 640,tmp 现在将是 6。

然后我们打印出美元钞票,首先打印金额 (tmp),然后打印美元钞票的类型。

之后我们更新amount
amount % 100 尽可能多地从amount 中减去100。
如果我们继续以 640 为例,它会:
640-100=540
540-100=440
440-100=340
340-100=240
240-100=140
140-100= 40 因此,amount 将只剩下 40 个。

对于所有剩余的美元钞票尺寸,我们将继续此流程。

【讨论】:

  • 我更新了上面的代码,但我仍然对如何计算零钱数量感到困惑,以及如何将面额复数化,因为百可以多次使用..etc
  • @patm,我添加了更多解释,希望它是如何工作的。
  • 我理解算术,但它不应该存储为 double 值而不是 int 吗?还有,什么是tmp?
猜你喜欢
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-04
  • 1970-01-01
相关资源
最近更新 更多