注:五种方法都是保留2位数小数,如果不满足你们的需求可以把2位改其他的!
public static void main(String[] args) {
// 方法一(方式一中使用BigDecimal中的设置精确值,会四舍五入):
double f = 3.1516;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("方法一:" + f1);
// 方法二( #.00 表示两位小数 #.0000四位小数 以此类推…):
System.out.println("方法二:" + new java.text.DecimalFormat("#.00").format(3.1415926))
// 方法三( %.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型):
double d = 3.1415926;
String result = String.format("%.2f", d);
System.out.println("方法三:" + result);
//方法四(String.format("%0" + 15 + "d", 23) 23不足15为就在前面补0):
System.out.println("方法四:" + Math.round(5.2644555 * 100) * 0.01d);
//方法五:
NumberFormat numberFormat = NumberFormat.getNumberInstance();
numberFormat.setMinimumFractionDigits(2);
System.out.println("方法五:" + numberFormat.format(1400.00005123));
}