/*返回double类型 ; 能进行四舍五入*/
public void method1() {
double f =111231.5585;
double f1= (double) Math.round(f *100) /100;
System.out.println(f1);
}
/* 四舍五入法 ; 返回double类型
* BigDecimal.ROUND_HALF_UP表示四舍五入,
* BigDecimal.ROUND_HALF_DOWN也是五舍六入,
* BigDecimal.ROUND_UP表示进位处理(就是直接加1),
* BigDecimal.ROUND_DOWN表示直接去掉尾数* */
public void method2(){
double f =111231.5585;
BigDecimal bg =new BigDecimal(f);
//第一个参数2是保留2位的意思
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(f1);
}
/* 返回String类型;String.format打印最简便; %.2f表示保留后两位,能四舍五入**/
public void method3() {
double f =111231.5585;
String f1=String.format("%.2f", f);
System.out.println(f1);
}
/* 返回String类型 ; DecimalFormat转换最简便 ; 0.00表示保留后两位,它的处理方式是直接截掉不要的尾数,不四舍五入。* */
public void method4() {
double f =111231.5585;
DecimalFormat df =new DecimalFormat("0.00");//格式化小数
String f1 = df.format((float)1/2);//返回的是String类型
System.out.println(f1);
}
/*返回String类型;RoundingMode.HALF_DOWN表示 五舍六入,负数先取绝对值再五舍六入再负数;RoundingMode.HALF_UP:表示四舍五入,负数先取绝对值再五舍六入再负数。* */
public void method5() {
double f =111231.5585;
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);// 保留两位小数
nf.setRoundingMode(RoundingMode.UP);//表示四舍五入
String f1=nf.format(f);
System.out.println(f1);
}
/*JS 四舍五入的情况*/
var num =2.446242342;
var num1 =num.toFixed(2);// 输出结果为2.45
/*JS 不会四舍五入的情况*/
var num2 =Math.floor(num *100) /100 //输出结果为2.44