-1
目前我正在尝试在java中编写更改机器。出于某种原因,转换过程中准确度有很大的损失。奇准确度错误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);
}
}
首先 - 究竟是什么问题?其次,我建议你使用BigDecimal来赚钱。 –
只是一个方面的说明,但你不需要包括这些的加利福尼亚或to鱼呢?关于改变的法案呢?或者,如果支付的金额和物品价格之间的差距很大,你是否只给出了一个万亿的收入? –
@ miss.serena - 这是一个两位操作,最多只有四分之一的变化。 –