硬币计数器中的尼克斯没有显示正确的金额

时间:2016-01-26 23:03:57

标签: java

我刚刚在我的Java课程中完成了第一次任务,我们的任务是创建一个计算镍币并显示总金额的程序。但是,每当我输入奇数个镍币时,它都不会显示相应的金额。例如,1个镍币变成$ .5而不是$ .05。 21尼克斯变成1.5美元而不是1.05美元。我很容易解决这个问题,但我发现自己很难过。谢谢你的帮助。

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

      int nickles;

      System.out.println("Deposit your Nickles.");
      nickles = in.nextInt();
      int nickles5 = nickles * 5;


      int dollars = nickles5 / 100;
      int change = nickles5 % 100;


      System.out.println("You have $" + dollars + "." + change);
}

3 个答案:

答案 0 :(得分:0)

您需要格式化change以使用2位数,而不是仅打印原始数字。具体来说,如果change==5,您要打印05

<{> You can do this String.format("%02d", change)

答案 1 :(得分:0)

你最后有一个随机撇号,为什么? 你想使用浮点数而不是整数,如下所示:         Scanner in = new Scanner(System.in);         int nickles;

    System.out.println("Deposit your Nickles.");
    nickles = in.nextInt();//get number
    float nickles5 = nickles * 5;//input 1, get 5
    float amount = nickles5/100;
    System.out.println("$"+ amount);

输出:

Deposit your Nickles.
1
$0.05

Deposit your Nickles.
21
$1.05

编辑:格式化输出的代码:

    Scanner in = new Scanner(System.in);
    int nickles;

    System.out.println("Deposit your Nickles.");
    nickles = in.nextInt();//get number
    float nickles5 = nickles * 5;//input 1, get 5
    float amount = nickles5/100;
    String output = String.format("%02f", amount);//f(loat) not d

    System.out.println("$"+ output);

答案 2 :(得分:0)

我会站在这里,尝试解决你的问题。您似乎会要求用户输入一定数量的镍币,您将以美元输出金额。如果这是不正确的,请告诉我。

现在看下面的代码。

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

      int nickles;
      System.out.println("Deposit your Nickles.");
      nickles = in.nextInt();
      double nickles5 = nickles * 0.05;
      System.out.println("You have $" + nickles5);
}

在我们有一个int存储的镍的数量后,我们将它乘以0.05,以获得所有镍的实际值。我们将它存储在一个双变量中[注意:int乘以一个double,返回一个double;它被称为数字促销]。现在,要获得总值,您只需打印此双变量即可。在n = 2的情况下,镍5 = 0.1。因此,它将打印0.1美元

如果您希望它显示为0.10美元,只需将​​{5}替换为String.format( "%.2f", nickels5)

现在你的最后一行看起来像是:

System.out.println("You have $" + String.format( "%.2f", nickels5));

如果这解决了您的问题,请告诉我。