0

小数点以下の最小桁数を設定したい

double a = 1d / 3;
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(30);
System.out.println(nf.format(a));

しかし、それは次のような結果をもたらします

    0.333333333333333300000000000000

どうすればこれを克服できますか?

4

2 に答える 2

1

次のようなことを試してください:

    BigDecimal b1 = new BigDecimal(1);
    BigDecimal b2 = new BigDecimal(3);
    System.out.println(b1.divide(b2, 30, BigDecimal.ROUND_UP));
于 2012-10-10T08:01:13.533 に答える
1

この型の精度は、double10 進数で約 16 桁に制限されています (倍精度浮動小数点形式を参照してください)。したがって、 から 30 桁を出力することはあまり意味がありませんdouble

BigDecimal無制限の精度の浮動小数点数が必要な場合に使用します。

于 2012-10-10T08:16:52.393 に答える