【Qiita】BigDecimal.setScaleのRoundingMode.UPがこんなに切り上がるわけがない

Qiitaに記事を投稿しました!
→記事リンク

続きには簡潔に結論を書いています。

概要

小数第一位を切り上げるコードを書いたよ!

// 当然 1 になるよね!
BigDecimal.valueOf(1.000000000000001d).setScale(0, RoundingMode.UP);

なぜか2になったよ!!!

// 切り上げる前に第二位以下を切り捨てちゃおうね!
BigDecimal.valueOf(1.000000000000001d).setScale(1, RoundingMode.DOWN)
                                                                   .setScale(0, RoundingMode.UP);

コメントする