我想除BigDecimals
,1 / 14819.79865821543
,但结果是0
而不是0.00006748
其中coinRateInUSDWalletTo = 14819.79865821543且金额= 1
BigDecimal numberOfCoinsToTransfer = amount.divide(
new BigDecimal(coinRateInUSDWalletTo),
RoundingMode.HALF_UP);
答案 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);