1. format
double dou = 3.14789;
String douStr = String.format("%.2f", dou);
System.out.println("douStr:" + douStr);
注:四舍五入,位数不够则会用0补齐。
2. bigDecimal
double dou = 3.14789;
//BigDecimal.ROUND_UP 四舍五入
//BigDecimal.ROUND_DOWN 直接舍弃保留位数之后小数
BigDecimal bigDecimal = new BigDecimal(dou).setScale(2, BigDecimal.ROUND_DOWN);
double newDouble = bigDecimal.doubleValue();
System.out.println("newDouble:" + newDouble);
注:
1、BigDecimal.ROUND_UP 四舍五入,BigDecimal.ROUND_DOWN 直接舍弃保留位数之后小数;
2、位数不够时,不会补齐。
3. NumberFormat
double dou = 3.14789;
NumberFormat numberFormat = NumberFormat.getNumberInstance();
numberFormat.setMaximumFractionDigits(2);
//RoundingMode.UP 四舍五入
//RoundingMode.DOWN 直接舍弃保留位数之后小数
//不指定则默认就是四舍五入
numberFormat.setRoundingMode(RoundingMode.DOWN);
String douStr2 = numberFormat.format(dou);
System.out.println("douStr2:" + douStr2);
注:
1、RoundingMode.UP 四舍五入,RoundingMode.DOWN 直接舍弃保留位数之后小数;
2、NumberFormat不指定RoundingMode时默认为四舍五入;
3、位数不够时,不会补齐。