質問: result.divide(d3, 5, BigDecimal.ROUND_HALF_DOWN); コード ```
回答: 質問のコードが完成されていないので、想像で回答します。 まず、10進数で 1/3*3 を手計算しても0.9999... になる場合はありますよね? 1/3 を小数点以下5桁で四捨五入で求めよ 答え= 0.33333 0.33333 × 3 を小数点以下5桁で四捨五入で求めよ 答え= 0.99999 で、これに対する対策はいろいろ考えられますが、BigDecimal を使うような場面(金融の金利計算など)では、誰がやっても同じ結果が得られることが要件となっており、個々に計算方法の仕様(いつ何桁目を四捨五入するかなど)が決められているはずです。 単純に10進数で計算してるのだから元に戻れよと思うのであれば、1桁多めに計算して、最後に四捨五入すれば良いと思いますが、そういうものが欲しいのであれば、 BigDecimal を使う必要は無く、Double で計算しておいて、最後に自分のほしい桁数で丸めるほうが簡単だと思います。