-1

現在、Java でチェンジ マシンを作成しようとしています。何らかの理由で、変換中に精度が大幅に低下します。

最初に、借りている金額と支払われた金額のデータ値を要求します。次に、四半期の数を除算し、残りを mod します。次に、10 セント硬貨、2 セント硬貨、1 セント硬貨でこれを実行します。この後、どのくらいの変更が必要かが出力されます。

import java.io.*;
import static java.lang.System.*;

import java.util.Scanner;

class change{


     public static void main (String str[]) throws IOException {

            //asker thingy
            Scanner scan = new Scanner(System.in);
            System.out.println("Please enter the Cost of the Item:");
            System.out.print("$");
            double costowed = scan.nextDouble();
            System.out.println("Please Enter the Amount Payed:");
            System.out.print("$");
            double costpayed = scan.nextDouble();

            //Quarters
            double a1 = Math.round( (costpayed - costowed) * 100);
            int quarters = (int)(a1 / 25);
            int a2 = (int)(a1 % 25);

            //dimes
            int dimes = (int)(a2 / 10);
            int a3 = (int)(a1 % 10);

            //nickles & pennies
            int nickles = (int)(a3 / 5);
            int pennies = (int)(a1 % 5);

            //change owed
            double arc = (double)(a1 / 100);

            //print sequence
            System.out.println("Change owed: " + arc);
            System.out.println("Quarters: " + quarters);
            System.out.println("Dimes: " + dimes);
            System.out.println("Nickles: " + nickles);
            System.out.println("Pennies: " + pennies);
     }

}
4

1 に答える 1

1

この線

int a3 = (int)(a1 % 10);

次のようにする必要があります。

int a3 = (int)(a2 % 10);

そして同様int pennies = (int)(a1 % 5);にあるべきですint pennies = (int)(a3 % 5);

于 2013-09-26T00:37:59.607 に答える