2

非常に大きくて正確な数値 (倍精度で処理できるよりもはるかに多くの有効桁数) を丸める必要があるプログラムを作成しており、BigDecimals を使用しています。

有効数字ではなく場所に基づいて BigDecimal を丸める方法はありますか?

つまり、1 に丸めるには 0.5 が必要で、0 に丸めるには 0.4 が必要ですが、これらは同じ有効数字であるため、BigDecimal はどちらも丸めることを拒否します。

4

1 に答える 1

6

私はあなたが欲しいと思うsetScale

import java.math.*;

public class Test
{
    public static void main(String[] args)
    {
        showRounded(new BigDecimal("0.4"));
        showRounded(new BigDecimal("0.5"));
    }

    static void showRounded(BigDecimal input)
    {
        BigDecimal output = input.setScale(0, BigDecimal.ROUND_HALF_UP);
        System.out.println(input + " => " + output);
    }
}
于 2011-06-27T16:53:58.357 に答える