BigDecimal num = new BigDecimal("0.1234").pow(10);
System.out.println(num);//1
System.out.println(num.toString());//2
System.out.println(num.toPlainString());//3
System.out.println("重新转换为BigDecimal");
BigDecimal num2 = new BigDecimal(num.toString());
BigDecimal num3 = new BigDecimal(num.toPlainString());
System.out.println(num2.toPlainString());
System.out.println(num3.toPlainString());
执行测试代码,直接看结果:
8.187505353567209228244052427776E-10
8.187505353567209228244052427776E-10
0.0000000008187505353567209228244052427776
重新转换为BigDecimal
0.0000000008187505353567209228244052427776
0.0000000008187505353567209228244052427776
1、1和2不用说,直接print对象默认调用的就是对象的toString方法。
2、从结果可以看出,toString会输出科学计数法的表达形式;toPlainString会直接输出小数,不会变成科学计数法。
3、两种表现形式都可以使用BigDecimal构造方法重新转换成BigDecimal对象。