63

Java でBigDecimalクラスを操作していて、コードの一部で小数部分を抽出する必要があります。 BigDecimalの小数点以下の数値を取得するのに役立つ組み込みメソッドがないようですBigDecimal

例えば:

BigDecimal bd = new BigDecimal("23452.4523434");

4523434上記の数値からを抽出したいと思います。それを行う最良の方法は何ですか?

4

4 に答える 4

104

私は試してみbd.remainder(BigDecimal.ONE)ます。

remainderメソッドとONE定数を使用します。

BigDecimal bd = new BigDecimal( "23452.4523434" );
BigDecimal fractionalPart = bd.remainder( BigDecimal.ONE ); // Result:  0.4523434
于 2012-04-06T03:24:27.677 に答える
7

メソッドを使用する代わりに、次のremainder()方法があります。

BigDecimal bd = new BigDecimal("23452.4523434");
BigDecimal fracBd = bd.subtract(new BigDecimal(bd.toBigInteger()));

さらに、 abs() メソッドを試して、小数部分が正であることを確認できます。

BigDecimal fracBd = bd.subtract(new BigDecimal(bd.toBigInteger())).abs();
于 2012-04-06T04:06:51.947 に答える