目前我正在尝试用java编写一个变更机器。由于某种原因,在转换过程中会出现很大的精度损失。
它将首先询问欠多少和支付多少的数据值。然后它会除掉四分之一的数量,然后将余数取模。然后它会用硬币、镍币和便士来执行此操作。在此之后,它将打印出欠了多少零钱。
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);
}
}