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

该类型的精度double限制为大约 16 个十进制数字(请参阅:双精度浮点格式)。因此,从double.

BigDecimal如果您需要无限精度的浮点数,请使用。

于 2012-10-10T08:16:52.393 回答