2016-03-05 44 views
1

我对Java很新。我收到一个错误。我知道是什么导致它是double(changeLeft),但我需要得到我的结果在一倍,所以它显示适当的变化,但我不知道如何做到这一点。自动售货机更换Java

我不允许使用便士。最小的变化是宿舍。

我相信我所要做的是施放?但我真的很失落。

任何帮助/建议将不胜感激!

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");   
    } 
} 
+0

什么是'x/1'? x/1'的剩余部分是什么? (提示:数学)。 –

+0

如果你在用钱工作,那么它应该是双倍的。如果你从这个数字中得到数字,那么他们可以是整数。 NB整数除法与双精度或浮点除法有很大不同。 – ManoDestra

+0

如果您使用金钱工作,您可以接受双打作为用户输入,但双打必须立即**转换为整数或长分。浮点算术对计算金钱不够精确。 –

回答

0

您可以将所有内容都更新为双打。请注意扫描仪的Double.valueOf(String)。

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


}