double类型转bigdecimal,保留两位小数,小数部分不足时补0
public static void main(String[] args){
//保留4位小数,#.0000或0.0000都可以,#.####或0.####是入参必须要有四位小数才可以使用。
DecimalFormat df = new DecimalFormat("#.0000");
double d1 = 3;
double d2 = 3.1;
double d3 = 3.1415;
double d4 = 3.1499;
String dstr1 = df.format(d1);
String dstr2 = df.format(d2);
String dstr3 = df.format(d3);
String dstr4 = df.format(d4);
//根据小数点下标截取小数点后两位
String str1 = dstr1.substring(0,dstr1.indexOf('.')+3);
String str2 = dstr2.substring(0,dstr2.indexOf('.')+3);
String str3 = dstr3.substring(0,dstr3.indexOf('.')+3);
String str4 = dstr4.substring(0,dstr4.indexOf('.')+3);
System.out.println(new BigDecimal(str1));
System.out.println(new BigDecimal(str2));
System.out.println(new BigDecimal(str3));
System.out.println(new BigDecimal(str4));
}
结果:
![](https://i-blog.csdnimg.cn/blog_migrate/5a3f904949718323b4848aa83d3b54a2.png)