我应该写一个程序,返回季度,镍币,硬币和硬币的变化。
但是,我只能得到改变和季度。
其他任何改变都不起作用。
import java.math.*;
import java.text.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double amountPaid, cost, changeOwed;
double pennies, nickels, dimes, quarters, change;
System.out.println("Please Enter the Amount Paid");
amountPaid = scanner.nextDouble();
System.out.println("Please Enter the Total Cost of the Item:");
cost = scanner.nextDouble();
double roundOffPaid = amountPaid * 100;
double roundOffCost = cost *100;
double change2 = roundOffPaid - roundOffCost;
change = change2/100;
System.out.println(change);
quarters = Math.floor(change / 0.25);
dimes = Math.floor(change % .25) / .10;
nickels = Math.floor(change % .10) / .5;
pennies = Math.floor(change % .5) / .1;
System.out.println("Quarters: " +quarters);
System.out.println("Dimes: "+ dimes);
System.out.println("Nickels" + nickels);
System.out.println("Pennies "+ pennies);
}
}
答案 0 :(得分:4)
阐述@ PEF的评论......
您的问题很可能是由于浮点舍入错误的影响。有关详细说明,请阅读
解决方案(在这种情况下)很简单。通过乘以100将提供的valuse从美元转换为美分,并使用int
变量来表示(整数)美分的数量。
答案 1 :(得分:0)
您的代码中没有任何错误。当您通过将“更改”除以0.25,0.1和0.5得到余数时,您将始终得到0作为结果。