代码之家  ›  专栏  ›  技术社区  ›  en Peris

如何用大小数除

  •  0
  • en Peris  · 技术社区  · 5 年前

    我想分开 BigDecimals , 1 / 14819.79865821543 但是结果是 0 而不是 0.00006748

    其中coirrateinusdwalletto=14819.79865821543,amount=1

    BigDecimal numberOfCoinsToTransfer = amount.divide(
        new BigDecimal(coinRateInUSDWalletTo),
        RoundingMode.HALF_UP);
    
    2 回复  |  直到 5 年前
        1
  •  2
  •   Rudy Velthuis    5 年前

    您必须指定 scale 对于 BigDecimal .

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

    同时注意使用 BigDecimal.ONE . 不需要再创建一个(lol)。

        2
  •  2
  •   bUff23    5 年前

    你忘了给磅秤。

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

    公共bigdecimal除法(bigdecimal除数,int scale,roundingmode 循环模式

    如果指定比例8,则将得到所需的答案: 0.00006748

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