第一种方式:
new BigDecimal() 实现:
double res = new BigDecimal(number).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
// 其中double number为需要保留的数字,保留的结果用res接收
// 4为保留的小数位数
较为复杂!,不推荐!!!并且当数字本身为3位小数时,并不会用0补充
举例:0.83,保留四位,结果仍然是0.83,并不会给多余位补0
第二种方式
DecimalFormat
DecimalFormat df = new DecimalFormat("#.000");
//保留3位小数,当个位为0时,会把个位的0截掉
//举例,0.80003,经过处理会变成 .800
//若要保留个位的0,在个位添加一个0即可
DecimalFormat df = new DecimalFormat("#0.000");
df.format(number);
第三种方式,最简单!
String.format(“%.3f”, f) //保留三位小数
double f;
//String.format("%.3f", f) 保留3位小数 类似c语言的 printf("%.4f", num);
System.out.println(String.format("%.3f", f) );
总结
第三种方式最简单最推荐,其实第二种再第一种