Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示更改需求信息_Java - Fatal编程技术网

Java 显示更改需求信息

Java 显示更改需求信息,java,Java,我需要编写一个java程序来计算销售交易中的账单和零钱 它只能分发20、10、5、1、25美分、10美分、5美分和1美分 如果它不需要分配面额(比如说你的零钱是50美分,它应该只分配两个25美分,不应该提及其他货币) 我无法让它分配正确数量的货币,它只分配所有货币(例如,如果它是21美元,我给出纳员22美元,代码告诉我给.013美元20秒,.294美元10秒,等等) 如果有人能帮我,那就太好了 double price; // declares how much the price is do

我需要编写一个java程序来计算销售交易中的账单和零钱

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

如果它不需要分配面额(比如说你的零钱是50美分,它应该只分配两个25美分,不应该提及其他货币)

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

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.");

        }
    }
}
}
}
双倍价格;//声明价格是多少
给双倍的钱;//声明出纳收到的金额
int change;//声明将给出多少更改作为回报
System.out.println(“输入项目价格:”);
价格=IO.readDouble()*100;
{
{
System.out.println(“输入给定的金额:”);
moneyGiven=IO.readDouble()*100;
{
如果(给定的金额>价格)
System.out.println(“您的更改是:”);
变化=给定的货币-价格;
国际二十年代=变化/2000年;
如果(二十岁>=1){
更改=更改%2000;
系统输出打印项次(20美元+20美元票据);
}
int tens=变化/1000;
如果(十个>=1){
更改=更改%1000;
System.out.println(十位数+十美元钞票);
}
int fives=变化/500;
如果(五个>=1){
更改=更改%500;
系统输出打印项次(五美元+五美元);
}
整数=变化/100;
如果(个数>=1){
更改=更改%100;
系统输出打印项次(个数+1美元票据);
}
国际季度=变化/25;
如果(四分之一>=1){
更改=更改%25;
系统输出打印项次(季度+季度);
}
int dimes=变化/10;
如果(一角硬币>=1){
更改=更改%10;
系统输出打印项次(一角+一角);
}
int nickles=变化/5;
如果(刻痕>=1){
更改=更改%5;
系统输出打印LN(刻痕+“刻痕”);
}
整便士=零钱/1;
如果(便士>=1){
更改=更改%1;
系统输出打印项数(便士+便士);
}

如果(moneyGiven这里有一些错误:

  • if
    语句后面有分号。这意味着以下大括号中的代码总是被执行
  • 您似乎要检查从5开始余数是否大于0,而不是1
  • 每个面额的输出都是除法的结果,可能是小数。您需要输出此面额的下限

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

        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.");
    
        }
            }
        }
        }
    
    }
    
    double price;//声明价格是多少
    double moneyGiven;//声明给出纳员多少钱
    double change;//声明作为回报所做的更改量
    System.out.println(“输入项目价格:”);
    价格=IO.readDouble()*100{
    {
    System.out.println(“输入给定的金额:”);
    moneyGiven=IO.readDouble()*100{
    如果(给定的金额>价格)
    System.out.println(“您的更改是:”);
    变化=给定的货币-价格;
    双倍20=变动/2000;
    如果(二十岁>=1){
    更改=更改%2000;
    System.out.println(数学地板(二十年代)+“20美元钞票”);)
    双十=变化/1000;
    如果(十个>=1){
    更改=更改%1000;
    System.out.println(数学地板(十位数)+“10美元钞票”);}
    双五=零钱/500;
    如果(五个>=1){
    更改=更改%500;
    System.out.println(数学地板(五个)+“$5钞票”);}
    双1=变化/100;
    如果(个数>=1){
    更改=更改%100;
    System.out.println(数学地板(个)+“$1账单”);}
    双季度=变化/25;
    如果(四分之一>=1){
    更改=更改%25;
    System.out.println(数学楼层(四分之一)+“四分之一”);}
    双倍硬币=零钱/10;
    如果(一角硬币>=1){
    更改=更改%10;
    System.out.println(数学地板(十美分)+“十美分”);}
    双刻痕=变化/5;
    如果(刻痕>=1){
    更改=更改%5;
    System.out.println(数学地板(刻痕)+“刻痕”);}
    双便士=零钱/1;
    如果(便士>=1){
    更改=更改%1;
    System.out.println(数学地板(便士)+“便士”);}
    
    如果(moneyGiven请为您的示例添加准确的输入和结果。如果价格为$21,那么最终在
    价格中的值是多少?
    ?此处有许多可能的失败点,我们需要更多信息。下面是一个返回示例:输入项目的价格:21.32输入给定的金额:22您的更改为:0.136$5账单0.681美元钞票2.72季度1.8美分1.6镍币3.0便士有很多问题。您是否使用了正确的IDE?如果没有,您需要一个。自动括号对齐将有助于查看范围。例如,您有
    If(moneyGiven price)
    。由于所有
    If();
    语句(分号),因此它按书面形式执行,但修复后将永远不会执行。使用当前代码更新:我的编辑--我查看了一个建议的编辑,只修复了缩进--代码和语法仍然存在问题。好的,我删除了分号,但是,当我输入的值小于所需量时,它不会返回“不够”,与statme相同我不知道你所说的数字2是什么意思。其余的是什么意思