Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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_Casting - Fatal编程技术网

Java 自动售货机

Java 自动售货机,java,casting,Java,Casting,我对Java非常陌生。我有个错误。我知道是什么原因导致了双精度(changeLeft),但我需要得到双精度的结果,以便显示正确的变化,但我不知道如何做到这一点 我不允许使用便士。最小的变化是四分之一 我相信我要做的就是投球?但我真的很迷茫 如有任何帮助/建议,将不胜感激 import java.util.Scanner; public class Cash { public static void main(String[] args) { Scanner scan

我对Java非常陌生。我有个错误。我知道是什么原因导致了双精度(changeLeft),但我需要得到双精度的结果,以便显示正确的变化,但我不知道如何做到这一点

我不允许使用便士。最小的变化是四分之一

我相信我要做的就是投球?但我真的很迷茫

如有任何帮助/建议,将不胜感激

import java.util.Scanner;

public class Cash {


    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

    int itemCost = 0;
    int moneyInserted = 0;
    int changeLeft = 0;
    int hundred = 0;
    int fifty = 0;
    int twenty = 0;
    int ten = 0;
    int five = 0;
    int toonie = 0;
    int loonie = 0;
    double quarter = 0;

    System.out.println("Item cost?");
    itemCost = scanner.nextInt();

    System.out.println("Amount given?");
    moneyInserted = scanner.nextInt();

    changeLeft = moneyInserted - itemCost;

    hundred = changeLeft / 100;
    changeLeft = changeLeft % 100;

    fifty = changeLeft / 50;
    changeLeft = changeLeft % 50;

    twenty = changeLeft / 20;
    changeLeft = changeLeft % 20;

    ten = changeLeft / 10;
    changeLeft = changeLeft % 10;

    five = changeLeft / 5;
    changeLeft = changeLeft % 5;

    toonie = changeLeft / 2;
    changeLeft = changeLeft % 2;

    loonie = changeLeft / 1;
    changeLeft = changeLeft % 1;

    quarter = (double)changeLeft; 


    System.out.println("Change Due($): \n" +
             hundred + " Hundred\n" + fifty + " Fifty\n" + twenty +
             " Twenty\n" + ten + " Ten\n" + five + " Five\n" + toonie +
             " Toonie\n" + loonie + " Loonie\n" +
             quarter + " Quarter");        
    }
}

您可以将所有内容更新为双倍。注意来自扫描仪的Double.valueOf(字符串)

    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

double itemCost = 0;
double moneyInserted = 0;
double changeLeft = 0;
double hundred = 0;
double fifty = 0;
double twenty = 0;
double ten = 0;
double five = 0;
double toonie = 0;
double loonie = 0;
double quarter = 0;

System.out.println("Item cost?");
itemCost = Double.valueOf(scanner.next());

System.out.println("Amount given?");
moneyInserted = Double.valueOf(scanner.next());

changeLeft = moneyInserted - itemCost;

hundred = changeLeft / 100;
changeLeft = changeLeft % 100;

fifty = changeLeft / 50;
changeLeft = changeLeft % 50;

twenty = changeLeft / 20;
changeLeft = changeLeft % 20;

ten = changeLeft / 10;
changeLeft = changeLeft % 10;

five = changeLeft / 5;
changeLeft = changeLeft % 5;

toonie = changeLeft / 2;
changeLeft = changeLeft % 2;

loonie = changeLeft / 1;
changeLeft = changeLeft % 1;

quarter = (double)changeLeft; 


System.out.println("Change Due($): \n" +
         hundred + " Hundred\n" + fifty + " Fifty\n" + twenty +
         " Twenty\n" + ten + " Ten\n" + five + " Five\n" + toonie +
         " Toonie\n" + loonie + " Loonie\n" +
         quarter + " Quarter");


}

您可以将所有内容更新为双倍。注意来自扫描仪的Double.valueOf(字符串)

    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);

double itemCost = 0;
double moneyInserted = 0;
double changeLeft = 0;
double hundred = 0;
double fifty = 0;
double twenty = 0;
double ten = 0;
double five = 0;
double toonie = 0;
double loonie = 0;
double quarter = 0;

System.out.println("Item cost?");
itemCost = Double.valueOf(scanner.next());

System.out.println("Amount given?");
moneyInserted = Double.valueOf(scanner.next());

changeLeft = moneyInserted - itemCost;

hundred = changeLeft / 100;
changeLeft = changeLeft % 100;

fifty = changeLeft / 50;
changeLeft = changeLeft % 50;

twenty = changeLeft / 20;
changeLeft = changeLeft % 20;

ten = changeLeft / 10;
changeLeft = changeLeft % 10;

five = changeLeft / 5;
changeLeft = changeLeft % 5;

toonie = changeLeft / 2;
changeLeft = changeLeft % 2;

loonie = changeLeft / 1;
changeLeft = changeLeft % 1;

quarter = (double)changeLeft; 


System.out.println("Change Due($): \n" +
         hundred + " Hundred\n" + fifty + " Fifty\n" + twenty +
         " Twenty\n" + ten + " Ten\n" + five + " Five\n" + toonie +
         " Toonie\n" + loonie + " Loonie\n" +
         quarter + " Quarter");


}

什么是
x/1
x/1
的其余部分是什么?(提示:数学)。如果你在用钱工作,那么它应该是双倍的。如果你从那个双精度中得到计数,那么它们可以是整数。NB整数除法与双精度或浮点除法有很大不同。如果您使用的是货币,您可以接受双精度作为用户输入,但双精度必须立即转换为整数或长精度。浮点运算对于货币计算来说不够精确。什么是
x/1
x/1
的其余部分是什么?(提示:数学)。如果你在用钱工作,那么它应该是双倍的。如果你从那个双精度中得到计数,那么它们可以是整数。NB整数除法与双精度或浮点除法有很大不同。如果您使用的是货币,您可以接受双精度作为用户输入,但双精度必须立即转换为整数或长精度。浮点运算对于货币计算来说不够精确。