Java中Double保留自定义小数位的几种方法

在Java语言编程中我们有时候会有保留指定小数位的需求,那应该如何操作呢,下面带来几种方法:(这里的所有方法以保留两位小数位为例)


一、 四舍五入并保留两位小数

①:使用Java中的Number & Math 类中的Java round() 方法,他表示它表示四舍五入。
代码如下:

        //定义两个值,区分`四舍五入`效果double num1 = 520.1111,num2 = 520.6666;//需要注意的是round() 方法返回一个 int、long 型值,所以需要强转成double类型num1 =(double) Math.round(num1 * 100) / 100;num2 =(double) Math.round(num2 * 100) / 100;System.out.println(num1 + " -- " +num2);// 控制台打印结果为:520.11 -- 520.67   即`四舍五入`

②:format()方法将double型转换为String型再输出

double x = 520.6666;
String s = String.format("%.2f", x);
System.out.println( s );

③:创建BigDecimal类对象

BigDecimal.ROUND_HALF_UP表示四舍五入,BigDecimal.ROUND_HALF_DOWN也是五舍六入,BigDecimal.ROUND_UP表示进位处理(就是直接加1),BigDecimal.ROUND_DOWN表示直接去掉尾数

import java.math.BigDecimal;double num = 520.6666;
BigDecimal bd = new BigDecimal(num);
num = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(num);

二、不四舍五入直接保留两位小数

①:DecimalFormat转换(创建DecimalFormat类对象)

import java.text.DecimalFormat;   //注意导包double num = 520.1314;
DecimalFormat df = new DecimalFormat("0.00");
String format = df.format(num);
System.out.println(format);

②:创建NumberFormat对象

import java.text.NumberFormat;double num = 520.4444;
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2); // 不足两位不补0,超过两位部分的自动舍去
//nf.setMinimumFractionDigits(2); 不足两位自动补0,超过两位的部分不舍去
System.out.println(nf.format(num));

Java中Double保留自定义小数位的几种方法相关推荐

  1. Java中Double保留后小数位的几种方法

    返回double型的 1.能四舍五入1 double d = 114.145; 2 d = (double) Math.round(d * 100) / 100; 3 System.out.print ...

  2. Java中double类型大小比较的五种方法

    文章目录 1.使用BigDecimal 2.使用包装类Double 3.在误差范围内运行相等 4.转换成字符串 5.使用doubleToLongBits()方法 在Java中 int类型数据的大小比较 ...

  3. JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...

  4. java中double类型精度丢失问题及解决方法

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源: https://blog.csdn.net/yacolsp ...

  5. Java中double类型比较大小或相等的方法

    在Java中int类型数据的大小比较可以使用双等号,double类型则不能使用双等号来比较大小,如果使用的话得到的结果将永远是不相等,即使两者的精度是相同的也不可以.下面介绍两种比较double数据是 ...

  6. Java中Double除保留后小数位的几种方法

     返回double型的 1.能四舍五入 1 2 3 double d = 114.145; d = (double) Math.round(d * 100) / 100; System.out.pri ...

  7. java中日期比较方法_在java中进行日期时间比较的4种方法

    1. Date.compareTo() java.util.Date 提供了在 Java 中比较两个日期的经典方法compareTo(). 如果两个日期相等,则返回值为0. 如果Date在date参数 ...

  8. Java中加载properties文件的6种方法

    .使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream( ...

  9. 在java中进行日期时间比较的4种方法

    文章目录 1. Date.compareTo() 2. Date.before(),Date.after()和Date.equals() 3. Calender.before(),Calender.a ...

最新文章

  1. php清除账号登录,php实现账号登录/上传/下载/删除文件
  2. 类似wordpress的网站模板
  3. MySQL基础(二):视图、触发器、函数、事务、存储过程
  4. C++树的层次遍历(附完整源码)
  5. 关于java的集合类,以及HashMap中Set的用法!
  6. 虚拟机与主机串口通信(主机与主机)
  7. 【Elasticsearch】实用BM25 -第1部分: shard 如何影响Elasticsearch中的相关性评分
  8. 二叉树的先序、中序、后序遍历超详解
  9. php 查看使用多少内存
  10. c语言编程流水灯与交通灯实验,51单片机c语言交灯设计报告.doc
  11. 《Redis开发与运维》- 核心知识整理二(Lua脚本、发布订阅、客户端等)
  12. MicroSip客户端编译、运行
  13. 3D旋转相册代码及详细使用教程
  14. 分布式机器学习第3章 分布式机器学习框架
  15. 湖南工业大学计算机学院有哪些社团,湖南工业大学学生社团联合会
  16. 超详细电烙铁如何使用?
  17. 登陆失败:用户账户限制。可能的原因包括不允许空密码.........解决方案
  18. 接入支付宝出现交易订单处理失败,请稍后再试(ALI64)的错误
  19. zcmu-1957: 乌鸦坐飞机
  20. Github一夜爆火的阿里术小册究竟有什么魅力?才能引大家趋之若鹜

热门文章

  1. 【JDK】JCP, JEP, JLS, JSR介绍
  2. 【LeetCode】878. 第 N 个神奇数字
  3. 鼠标光标变成了黑色方块
  4. 欧盟能源相关产品(ErP)指令
  5. 如何搭建量化投资研究系统?(数据篇之财务数据)
  6. j2medev“用户界面和多媒体”版面问题整理[0407更新]
  7. 2018系统分析师案例分析真题背记内容
  8. 计算机组成原理12——冒险和预测
  9. 网络 DNS 解析与CDN加速
  10. 职场那些事之新员工培训