BigDecimal保留两位小数问题:
DecimalFormat df = new DecimalFormat("#.00");
//df.format("你要格式化的数字");
// 例如(四舍五入保留两位小数)
System.out.println(df.format(1.223));
// 输出的结果是1.22 #.00 表示两位小数 #.0000四位小数 以此类推...
BigDecimal num1 = new BigDecimal(1.225333333);
BigDecimal a1 = num1.setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(a1);
// 输出1.23
/**
* BigDecimal.ROUND_HALF_UP: 向“最接近的”数字舍入,
* 如果与两个相邻数字的距离相等,则为向上舍入的舍入模式
* 如果想保留3位,把2替换为3即可
*/
BigDecimal num = new BigDecimal(1.225333333);
String.valueOf(num); // 方法一
num.toString(); // 方法二
String num = "1.00";
BigDecimal num2 = new BigDecimal(num);
// 如果是double/int类型 还可以这样转
Double num3 = 1.00;
BigDecimal num4 = BigDecimal.valueOf(num3);