【发布时间】:2021-09-01 19:52:40
【问题描述】:
我试图将所欠的零钱除以 1,以计算出拥有多少美元。因此,如果欠 3.60,我想将其除以 1,但我使用 BigDecimal 收集更改变量,但不知道如何将其除以 1。
这是我尝试过的代码,但它不起作用。我需要使用 BigDecimal 来进行舍入错误,但我还需要将该值与 int 值一起使用。
我正在尝试输入一件物品的欠款金额,例如 5 美元,然后我输入收到的金额,例如 8.70 美元,然后我需要弄清楚如何显示多少美元、硬币、硬币和美分我会还给。到目前为止,我什至无法弄清楚如何让它显示 3 美元。这是我的代码
import java.util.Scanner;
import java.math.BigDecimal;
public class CoinMachine {
public static void main(String[] args) {
int DollarValue = 1;
Scanner in = new Scanner (System.in);
System.out.println("Coin Machine\n");
System.out.print("Enter the amount owed: ");
BigDecimal amountOwed = in.nextBigDecimal();
System.out.print("Enter the amount received: ");
BigDecimal amountReceived = in.nextBigDecimal();
if (amountReceived.compareTo(amountOwed) >= 0) {
BigDecimal Change = (amountReceived.subtract(amountOwed));
System.out.println("\nYour change today is $" + Change);
BigDecimal Dollars = (.longValue(Change));
System.out.println("Dollars Owed " + Dollars);
}
else {
BigDecimal changeShort = (amountOwed.subtract(amountReceived));
System.out.print("*** You did not provide enough money. You are $" + changeShort + " short. ***");
}
in.close();
}
}
【问题讨论】:
-
将一个数字除以 1 得到的数字与您开始时的数字完全相同。所以我认为这根本不会做任何事情。但如果你真的必须
BigDecimal same = Change.divide( BigDecimal.ONE ); -
提示:如果您只想要
BigDecimal的整数部分,我认为.longValue()是更好的选择。 -
我正在尝试修复舍入错误,但无法使用 double 来解决。我需要输入一件物品的价格,给出了多少,然后他们以美元、25 美分、1 美分、5 美分和美分的形式返还了多少
-
再一次,除以 1 没有任何作用。这只是数学。
-
如果你只想要美元,我已经给你了
longValue()。
标签: java math integer bigdecimal