Java四舍五入的三种方法和保存固定小数为的方法,下面的方法是具体使用时总结的,具体为什莫可以这嬷做还没有理解明白
(1) 使用DecimalFormat
0 一个数字 # 一个数字,不包括 0
DecimalFormatforamt=new DecimalFormat("0.0");//保留一位小数
DecimalFormatforamt=new DecimalFormat("#.#");
float h=32.15f+0.000001f;//加上超过保留小数位数的0.00001就可以按照我们的理解进行四舍五入了
doubled=32.05+0.0000001;
System.out.println(foramt.format(d)+""+foramt.format(h));
(2) 使用BigDecimal
BigDecimal big=newBigDecimal("32.05").setScale(1, RoundingMode.HALF_UP);//按照正常的四舍五入的形式进行计算//保留一位小数的四舍五入,被操作的数是bigdecimal的参数,结果是big.floatValue()此时若操作数是0.005结果就是0.06,而若转变为double则结果是0.05没有按照效果四舍五入。转变为bigdecimal的参数必须是字符串否则没办法进行四舍五入,这两个条件都符合后才能进行四舍五入。
(3) 使用NumberFormat
NumberFormatformat=NumberFormat.getInstance();
format.setMaximumFractionDigits(2);//最大保留两位小数//最多只有两位小数,若数据本身只有一位小数则只能显示一位小数
format.setRoundingMode(RoundingMode.HALF_UP);
System.out.println(format.format(32.455+0.00001));//此时保留的是两位小数并进行了四舍五入