如何用 BigDecimals 除法
How to divide with BigDecimals
我想除BigDecimals
、1 / 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);
我想除BigDecimals
、1 / 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);