首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示变更需求信息

显示变更需求信息
EN

Stack Overflow用户
提问于 2015-03-08 09:47:30
回答 2查看 608关注 0票数 1

我需要写一个java程序来计算什么账单和零钱将被给予销售交易。

它只能分发20美元、10美元、5美元、1美元、25美分、1美分、10美分、5美分和1美分。

如果它不需要分发面额(假设您的零钱是50美分,它应该只分发两个25美分)。它不应该提到其他货币)

我不能让它分配正确的货币数量,它只是分配所有的货币(例如,如果是21美元,我给了收银员22美元,代码告诉我给.013 20美元,.294 10美元,等等)。如果有人能帮我,那就太好了。

代码语言:javascript
复制
double price;  // declares how much the price is
double moneyGiven; // declares how much money the cashier is given
int change; // declares how much change is given in return

System.out.println("Enter the Price of the item:");
price = IO.readDouble()*100; 
{
    {
        System.out.println("Enter the Amount Given:");
        moneyGiven = IO.readDouble()*100; 
        {
            if (moneyGiven > price) 
                System.out.println("Your Change is:");

            change = moneyGiven - price;
            int twenties = change / 2000;
            if (twenties >= 1) {
                change = change % 2000;
                System.out.println(twenties + "$20 Bills"); 
            }

            int tens = change / 1000;
            if (tens >= 1) {
                change = change % 1000;
                System.out.println(tens + "$10 Bills"); 
            }

            int fives = change / 500;
            if (fives >= 1) {
                change = change % 500;
                System.out.println(fives + "$5 Bills"); 
            }

            int ones = change / 100;
            if (ones >= 1) {
                change = change % 100;
                System.out.println(ones + "$1 Bills"); 
            }

            int quarters = change / 25;
            if (quarters >= 1) {
                change = change % 25;
                System.out.println(quarters + "Quarters"); 
            }

            int dimes = change / 10;
            if (dimes >= 1) {
                change = change % 10;
                System.out.println(dimes + "Dimes"); 
            }

            int nickles = change / 5;
            if (nickles >= 1) {
                change = change % 5;
                System.out.println(nickles + "Nickles"); 
            }

            int pennies = change / 1;
            if (pennies >= 1) {
                change = change % 1;
                System.out.println(pennies + "Pennies"); 
            }




            if (moneyGiven <= price) 
                System.out.println("Not enough!");

            if (moneyGiven == price) 
                System.out.println("There is no Change to be given.");

        }
    }
}
}
}
EN

回答 2

Stack Overflow用户

发布于 2015-03-08 10:14:27

这里有一些错误的地方:

  1. 在你的if语句后面有分号。这将意味着以下大括号中的代码总是被执行,你似乎会检查从5开始的余数是否大于0,而不是1。
  2. ,你为每个面额输出的是除法的结果,可能是一个小数。你需要输出这个的地板。
票数 1
EN

Stack Overflow用户

发布于 2015-03-08 11:39:37

我相信我找到了答案,但它返回的答案是十进制的答案,即。1.0、5.0。如果没有.0,我如何让它返回答案?但是,我希望在我的代码中有任何输入:

代码语言:javascript
复制
    double price;  // declares how much the price is
    double moneyGiven; // declares how much money the cashier is given
    double change; // declares how much change is given in return

    System.out.println("Enter the Price of the item:");
    price = IO.readDouble()*100; {


    {


    System.out.println("Enter the Amount Given:");
    moneyGiven = IO.readDouble()*100; {




    if (moneyGiven > price) 


    System.out.println("Your Change is:");

    change = moneyGiven - price;
    double twenties = change / 2000;
    if (twenties >= 1) {
    change = change % 2000;
    System.out.println(Math.floor(twenties) + "$20 Bills"); }

    double tens = change / 1000;
    if (tens >= 1) {
    change = change % 1000;
    System.out.println(Math.floor(tens) + "$10 Bills"); }

    double fives = change / 500;
    if (fives >= 1) {
    change = change % 500;
    System.out.println(Math.floor(fives) + "$5 Bills"); }

    double ones = change / 100;
    if (ones >= 1) {
    change = change % 100;
    System.out.println(Math.floor(ones) + "$1 Bills"); }

    double quarters = change / 25;
    if (quarters >= 1) {
    change = change % 25;
    System.out.println(Math.floor(quarters) + "Quarters"); }

    double dimes = change / 10;
    if (dimes >= 1) {
    change = change % 10;
    System.out.println(Math.floor(dimes) + "Dimes"); }

    double nickles = change / 5;
    if (nickles >= 1) {
    change = change % 5;
    System.out.println(Math.floor(nickles) + "Nickles"); }

    double pennies = change / 1;
    if (pennies >= 1) {
    change = change % 1;
    System.out.println(Math.floor(pennies) + "Pennies"); }




    if (moneyGiven <= price) 
    System.out.println("Not enough!");

    if (moneyGiven == price) 
    System.out.println("There is no Change to be given.");

    }
        }
    }
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28922206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档