我想在下面设置最小的小数位数
double a = 1d / 3;
NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(30);
System.out.println(nf.format(a));
但它给出的结果为
0.333333333333333300000000000000
我该如何克服呢?
尝试这样的事情:
BigDecimal b1 = new BigDecimal(1);
BigDecimal b2 = new BigDecimal(3);
System.out.println(b1.divide(b2, 30, BigDecimal.ROUND_UP));
该类型的精度double
限制为大约 16 个十进制数字(请参阅:双精度浮点格式)。因此,从double
.
BigDecimal
如果您需要无限精度的浮点数,请使用。