使用setMinimumFractionDigits Java的分数

时间:2012-10-10 07:30:52

标签: java fractions

我想设置

以下的最小分数位数
double a = 1d / 3;
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(30);
System.out.println(nf.format(a));

但它将结果作为

    0.333333333333333300000000000000

我怎样才能克服这个?

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

    BigDecimal b1 = new BigDecimal(1);
    BigDecimal b2 = new BigDecimal(3);
    System.out.println(b1.divide(b2, 30, BigDecimal.ROUND_UP));

答案 1 :(得分:1)

double类型的精度限制为大约16个十进制数字(参见:Double-precision floating-point format)。因此,从double打印30位数字没有多大意义。

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