如何用BigDecimals进行除法

时间:2019-02-10 13:38:11

标签: java bigdecimal

我想除BigDecimals1 / 14819.79865821543,但结果是0而不是0.00006748

其中coinRateInUSDWalletTo = 14819.79865821543且金额= 1

BigDecimal numberOfCoinsToTransfer = amount.divide(
    new BigDecimal(coinRateInUSDWalletTo),
    RoundingMode.HALF_UP);

2 个答案:

答案 0 :(得分:2)

您必须为scale指定一个BigDecimal

final BigDecimal coinRateInUSDWalletTo = new BigDecimal("14819.79865821543");
final BigDecimal result = BigDecimal.ONE.divide(
    coinRateInUSDWalletTo,
    10 /* Scale */,
    RoundingMode.HALF_UP
);

还请注意BigDecimal.ONE的使用。无需再创建一个(大声笑)。

答案 1 :(得分:2)

您忘记提供秤了。

以下是 BigDecimal.divide()方法的声明。

  

公共BigDecimal除法(BigDecimal除数,整数比例,舍入模式   roundingMode)

如果您指定8级,那么您将得到所需的答案:0.00006748

 BigDecimal numberOfCoinsToTransfer = amount.divide(new BigDecimal 
 (coinRateInUSDWalletTo),8, RoundingMode.HALF_UP);