【发布时间】:2019-08-31 02:43:35
【问题描述】:
我需要创建一个能够以最有效的方式计算变化的程序。前任。 3 季度而不是 75 便士。它只是单张钞票、25 美分硬币、1 美分硬币等。但是,我需要遵守一些规则。
1) 将原始输入字符串的美元和美分部分分离为单独的子字符串。
2) 使用 Integer 实用程序类将这两个子字符串解析为原始整数值。
3) 您不得在工作中使用任何类型转换。
4) 彻底测试以确保不存在舍入误差。
代码是我最初所做的,但对于某些值我总是一分钱
public class ChangeCalculator
{
public static void Main (String args[]){
double NumberOfMoney = Double.parseDouble(args [0]);
int NumberOfCoins = (int)(NumberOfMoney * 100);
System.out.println("Amount of Money: " + NumberOfMoney + "\n");
int NumberOfDollars = (int)(NumberOfCoins/100);
NumberOfCoins = NumberOfCoins - 100 * NumberOfDollars;
System.out.println("Dollars: " + NumberOfDollars);
int NumberOfQuarters = (int)(NumberOfCoins/25);
NumberOfCoins = NumberOfCoins - 25 * NumberOfQuarters;
System.out.println("Quarters: " + NumberOfQuarters);
int NumberOfDimes = (int)(NumberOfCoins/10);
NumberOfCoins = NumberOfCoins - 10 * NumberOfDimes;
System.out.println("Dimes: " + NumberOfDimes);
int NumberOfNickels = (int)(NumberOfCoins/5);
NumberOfCoins = NumberOfCoins - 5 * NumberOfNickels;
System.out.println("Nickels: " + NumberOfNickels);
int NumberOfPennies = (int)(NumberOfCoins/1);
NumberOfCoins = NumberOfCoins - 1 * NumberOfPennies;
System.out.println("Pennies: " + NumberOfPennies);
}
}
输入 $1.15 应该输出 美元:1 宿舍:0 硬币:1 镍:1 便士:0 但它输出 美元:1 宿舍:0 硬币:1 镍:0 便士:4
【问题讨论】:
-
"$1.15 应该输出美元:1 硬币:0 硬币:1 硬币:5 便士:0" 不应该是:“美元:1 硬币:0 硬币:1 硬币:1 硬币:0? "
-
对于您的输入,请先尝试打印 NumberOfCoins 变量并进行调试。 NumberOfCoins 的初始值计算不正确。
-
@AleksW 谢谢我编辑了它
标签: java calculator calc