Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将BigDecimal显示为整数,同时保留原始值_Java_Type Conversion_Bigdecimal - Fatal编程技术网

Java 将BigDecimal显示为整数,同时保留原始值

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

本程序的目的是提供正确的更改。例如:

投入:45.54美元

产出:4张10美元钞票, 1五美元钞票, 2个季度, 4便士

现在谈谈我的问题:

我想在不丢失原始值的情况下将BigDecimal显示为整数,因为我必须继续我的除法,直到我得到0.01便士

我当前的代码如下所示:

    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
。然后,您可以从
钱中减去适当的金额
,然后继续。

难以置信的回答!非常感谢你!难以置信的反应!非常感谢你!