//直接将Double转BigDecimal
public static void main(String[] args) {
Double testA = 0.0001;
System.out.println(new BigDecimal(testA));
}
//先将Double toString之后再BigDecimal
public static void main(String[] args) {
Double testA = 0.0001;
System.out.println(new BigDecimal(testA.toString));
}
//output
0.000100000000000000004792173602385929598312941379845142364501953125
0.00010
第一种精度会变成66位
第二种精度会变成5位
如果想正确的获得小数的精度位数,可以用如下方法
public static void main(String[] args) {
Double testA = 0.0001;
System.out.println(new DecimalFormat("0.#############").format(testA));
}