方法一:使用BigDecimal格式化小数点
-
ROUND_DOWN直接删除多余的位数.
-
ROUND_HALF_UP直接四舍五入.
-
ROUND_UP是进位处理保留的小数后面无论是几都会进一位.
-
ROUND_HALF_DOWN是如果要保留的那个小数位是5则向下舍.
-
ROUND_CEILING接近正无穷大的舍入.
-
ROUND_FLOOR接近负无穷大的舍入,数字>0和ROUND_UP作用一样,数字<0和ROUND_DOWN作用一样.
-
ROUND_HALF_EVEN下最接近的数字舍入,如果与两个相邻数字的距离相等,泽祥相邻的偶数舍入.
public static void main(String[] args) { //5.254变成5.2 BigDecimal bigDecimal1 = new BigDecimal(5.254).setScale(1, BigDecimal.ROUND_DOWN); System.out.println("bigDecimal1="+bigDecimal1); //5.254变成5.3 BigDecimal bigDecimal2 = new BigDecimal(5.254).setScale(1, BigDecimal.ROUND_HALF_UP); System.out.println("bigDecimal2="+bigDecimal2); //5.224变成5.3 BigDecimal bigDecimal3 = new BigDecimal(5.224).setScale(1, BigDecimal.ROUND_UP); System.out.println("bigDecimal3="+bigDecimal3); //5.554变成5.6,如果是5.254则变成5.3 BigDecimal bigDecimal4 = new BigDecimal(5.554).setScale(1, BigDecimal.ROUND_HALF_DOWN); System.out.println("bigDecimal4="+bigDecimal4); //ROUND_CEILING接近正无穷大的舍入 BigDecimal bigDecimal5 = new BigDecimal(5.254).setScale(1, BigDecimal.ROUND_CEILING); System.out.println("bigDecimal5="+bigDecimal5); //5.254变成5.2,-5.254变成-5.3 BigDecimal bigDecimal6 = new BigDecimal(-5.254).setScale(1, BigDecimal.ROUND_FLOOR); System.out.println("bigDecimal6="+bigDecimal6); //5.254变成5.3,5.244变成5.2 BigDecimal bigDecimal7 = new BigDecimal(5.244).setScale(1, BigDecimal.ROUND_HALF_EVEN); System.out.println("bigDecimal7="+bigDecimal7); }
结果
方法二: 使用Math工具中的取整方法,可用于浮点数取整,只看浮点数的小数位是何值来判断.
public static void main(String[] args) { double i=3.76; //四舍五入直接取整数 long round = Math.round(i); //向上取整,5.46变成6.0,3.46变成4.0 double ceil = Math.ceil(i); //向下取整保留一位小数为0,3.76变成3.0 double floor = Math.floor(i); System.out.println(round); System.out.println(ceil); System.out.println(floor); }
结果展示:
方法三: 使用DecimalFormat数据格式化方式.
double num = 55.382; //定义保留格式,相当于保留几位小数 DecimalFormat df = new DecimalFormat("0.0"); //指定四舍五入规则HALF_UP df.setRoundingMode(RoundingMode.HALF_UP); System.out.println(df.format(num));
结果展示:
来源地址:https://blog.csdn.net/weixin_45694920/article/details/128686791