如何用 BigDecimals 除法

How to divide with BigDecimals

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

其中 coinRateInUSDWalletTo = 14819.79865821543 和金额 = 1

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

您必须为 BigDecimal 指定 scale

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

另请注意 BigDecimal.ONE 的用法。无需再创建一个(笑)。

你忘记给体重秤了。

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

public BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)

如果您指定比例 8,那么您将得到您想要的答案:0.00006748

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