Java中三种保留小数点的方法
短信预约 -IT技能 免费直播动态提醒
方法一:使用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
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341