Java 将BigDecimal显示为整数,同时保留原始值
本程序的目的是提供正确的更改。例如: 投入:45.54美元 产出:4张10美元钞票, 1五美元钞票, 2个季度, 4便士 现在谈谈我的问题: 我想在不丢失原始值的情况下将BigDecimal显示为整数,因为我必须继续我的除法,直到我得到0.01便士 我当前的代码如下所示:Java 将BigDecimal显示为整数,同时保留原始值,java,type-conversion,bigdecimal,Java,Type Conversion,Bigdecimal,本程序的目的是提供正确的更改。例如: 投入:45.54美元 产出:4张10美元钞票, 1五美元钞票, 2个季度, 4便士 现在谈谈我的问题: 我想在不丢失原始值的情况下将BigDecimal显示为整数,因为我必须继续我的除法,直到我得到0.01便士 我当前的代码如下所示: BigDecimal tenDollar = BigDecimal.valueOf(10); BigDecimal tenDollarNext; BigDecimal fiveDollar = BigD
BigDecimal tenDollar = BigDecimal.valueOf(10);
BigDecimal tenDollarNext;
BigDecimal fiveDollar = BigDecimal.valueOf(5);
BigDecimal fiveDollarNext;
/* Get Input From User */
System.out.print("Please enter the amount to be converted: ");
Scanner scan = new Scanner(System.in);
BigDecimal money = scan.nextBigDecimal();
NumberFormat usdFormat = NumberFormat.getCurrencyInstance(Locale.US);
usdFormat.setMinimumFractionDigits(2);
usdFormat.setMaximumFractionDigits(2);
System.out.println("Amount you entered: " + usdFormat.format(money));
/* Begin Processing and Displaying Information */
tenDollarNext = money.divide(tenDollar);
System.out.println(tenDollarNext + " Ten Dollar Bills");
fiveDollarNext = tenDollarNext.divide(fiveDollar, 0, RoundingMode.FLOOR);
System.out.println(fiveDollarNext + " Five Dollar Bills");
最终显示:
Please enter the amount to be converted: 45.54
Amount you entered: $45.54
4.554 Ten Dollar Bills
0 Five Dollar Bills
我的目标是将4.554显示为4,而不丢失计算末尾的小数点。我相信这有一个简单的答案,我希望有人能告诉我它的转换或指向我的方向,我可以找到答案。我的搜索查询没有任何帮助。使用
BigDecimal
类的divideToIntegralValue
方法代替divide
。这将返回一个值为整数的BigDecimal
。然后,您可以从money
中减去适当的金额,然后继续。使用BigDecimal
类的divideToIntegralValue
方法代替divide
。这将返回一个值为整数的BigDecimal
。然后,您可以从钱中减去适当的金额
,然后继续。难以置信的回答!非常感谢你!难以置信的反应!非常感谢你!