方法一、

 // 方法一public void test1() {double d = 0.3456789;BigDecimal bd = new BigDecimal(d);double test1 = bd.setScale(2, BigDecimal.ROUND_DOWN).doubleValue(); // 保留两位小数,不四舍五入(可选舍入模式)System.out.println("方法一:" + test1); //0.34}

BigDecimal

Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。

参数说明:

 setScale(newScale, roundingMode) newScale:要返回的 BigDecimal 值的标度。roundingMode:要应用的舍入模式。 返回:一个 BigDecimal,其标度为指定值,其非标度值可以通过此 BigDecimal的非标度值乘以或除以十的适当次幂来确定。

舍入模式:

 ROUND_CEILING  接近正无穷大的舍入模式。 ROUND_DOWN  从不对舍弃部分前面的数字加1,即截短。ROUND_FLOOR  接近负无穷大的舍入模式。ROUND_HALF_DOWN  向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为上舍入的舍入模式。                                                                                                                         ROUND_HALF_EVEN  向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。    ROUND_HALF_UP  向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。 ROUND_UNNECESSARY  断言请求的操作具有精确的结果,因此不需要舍入(如果对获得精确结果的操作指定此舍入模式,则抛出ArithmeticException)。ROUND_UP  始终对非舍弃部分前面的数字加1。

方法二、

 // 方法二public void test2() {double d = 0.3456789;// #.00 表示两位小数DecimalFormat df = new DecimalFormat("#0.00"); // 保留两位小数,四舍五入System.out.println("方法二:" + df.format(d)); //0.35}

DecimalFormat

DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。

参数说明:

0 阿拉伯数字
# 阿拉伯数字如果不存在就显示为空
. 小数分隔符或货币小数分隔符
- 减号
, 分组分隔符
E 分割科学技术法中的尾数和指数。在前缀和后缀中无需添加引号
; 分隔正数和负数子模式
% 乘以100并显示为百分数
\u2030 乘以1000并显示为千分数
\u00A4 货币记号,由货币符号替换。如果两个同时出现,则用国际货币符号替换。如果出现在某个模式中,则使用货币小数分隔符,而不使
用小数分隔符
' 用于在前缀或或后缀中为特殊字符加引号,例如 "'#'#" 将 123 格式化为 "#123"。要创建单引号本身,请连续使用两个单引号: "# o''clock"1.整数:若是n个0,就从个位开始向高位填充,如果有值就是原来的值,没有就填充0。
若都是#,没有实际意义,不管是几个#,最后的结果都是原来的整数。0和#配合使用,只能是"##00",不能是"00##",就是#在前0在后。
实现是上面的合集。
2.小数:是可以保留小数点后几位的(几个0后或几个#)。 若n个0,就是保留n位小数,小数不足的部分用0填充。
若n个#,就是保留n位小数,小数不足部分没有就是没有。

方法三、

 // 方法三public void test3() {double d = 0.3456789;// %.2f %.表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型System.out.println("方法三:" + String.format("%.2f", d));// 保留两位小数,四舍五入  //0.35   }

String.format

字符串常规类型格式化的两种重载方式
format(String format, Object… args) 使用当前本地区域对象(locale.getDefault())格式化字符串
format(Locale locale, String format, Object… args) 自定义本地区域对象格式化字符串

方法四、

 // 方法四public void test4() {     double d = 0.3456789;NumberFormat nf = NumberFormat.getNumberInstance();nf.setMaximumFractionDigits(2); // 保留两位小数,四舍五入System.out.println("方法四:" + nf.format(d)); //0.35}

NumberFormat

可用于格式化和解析任何语言环境的数值。

参数说明:

NumberFormat.getInstance 返回当前缺省语言环境的缺省数值格式;
NumberFormat.getCurrencyInstance 返回当前缺省语言环境的通用格式。
NumberFormat.getPercentInstance 返回当前缺省语言环境的百分比格式。
NumberFormat.getNumberInstance 返回指定语言环境的通用数值格式。
setMinimumFractionDigits() 设置数值的小数部分允许的最小位数,不足的位数以0补位,超出的话按实际位数输出。
setMaximumFractionDigits() 设置数值的小数部分允许的最大位数,不足不补0。
setMaximumIntegerDigits() 设置数值的整数部分允许的最大位数。
setMinimumIntegerDigits() 设置数值的整数部分允许的最小位数。

方法五、

 // 方法五public void test5() {double d = 0.3456789;// 保留两位小数,四舍五入System.out.println("方法五:" + (double) Math.round(d * 100) / 100.0); //0.35}

round()

round()方法可把一个数字舍入为最接近的整数。

参数说明:

如果参数的小数部分大于0.5,则舍入到相邻的绝对值更大的整数。
如果参数的小数部分小于0.5,则舍入到相邻的绝对值更小的整数。
如果参数的小数部分恰好等于0.5,则舍入到相邻的在正无穷(+∞)方向上的整数。
例如,3.5 将舍入为 4.0,而 -3.5 将舍入为 -3.0。

Double保留指定小数位数的五种方法相关推荐

  1. Excel四舍五入保留指定小数位数的2种操作方法

    如图所示需要对各种小数位数的小数呢,保留2位的四舍五入的操作,看小编的2种方法吧 (ROUND函数) (方方格子插件) 1.先看动图演示吧 2.我们可以在对应单元格输入下图的公式内容 3.确定后即可看 ...

  2. 保留指定小数位数js函数封装

    保留指定小数位数js函数封装 不用正则保留指定小数位数 函数入参定义, num:需要处理的数据 len:保留小数位数,默认2位 判断类型,统一转字符串处理 空值return 空字符串 numStr.r ...

  3. java精确小数位数的几种方法

    java中精确小数位数的几种方法 /* * 这里假设精确到小数点后5位 */ public class AccurateDecimalPart { public static void main(St ...

  4. Lua保留指定小数位数

    默认会四舍五入 比如:%0.2f 会四舍五入后,保留小数点后2位 print(string.format("%.1f",0.26)) ---会输出0.3,而不是0.2 Lua保留一 ...

  5. c# 从一组数中随机抽取一定个数_C#产生指定范围随机数的几种方法-亮术网

    在开发过程中,常常要产生随机数,如生成静态 html 网页时,文件名通常用产生随机数的方式获得,生成定单的时候,定单号也可以用产生随机数的方式获得等. 在 C# 中,一般都用 Random 产生随机数 ...

  6. Java double 保留一个小数、理解BigDecimal、Java解决精度问题

    Java double 保留一个小数 两种方法 @Testpublic void test2() {double f = 234.353333000000000000000000;BigDecimal ...

  7. JavaScript 指定小数位数 toFixed() 方法

    JavaScript Number 对象参考手册 定义和用法 toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 语法 NumberObject.toFixed(num) 参数 ...

  8. 把 Number 四舍五入为指定小数位数的数字

    // 创建 Number 对象var objNum = new Number(23);var num = 123.456;//把 Number 四舍五入为指定小数位数的数字console.log(nu ...

  9. 小程序页面之间数据传递的五种方法

    小程序页面之间数据传递的五种方法 目录 小程序页面之间数据传递的五种方法 **使用 `wx.navigateTo()` 时,在 url 中拼接,这种方法适用于数据量少的情况** **使用 `wx.na ...

最新文章

  1. Windows下搭建PHP开发环境
  2. Python入门系列之字符编码
  3. Access里执行SQL
  4. ubuntu下shutter的用法
  5. linux下创建新用户以及删除
  6. 039_JavaScript对象访问器
  7. GitLab-怎样使用GitLab托管项目
  8. python第三周测试_python第三周小测
  9. 讯飞输入法将深度神经网络DNN技术应用于语音识别达到业界领先水平
  10. 0-Day CI : 我是Linux内核质检员
  11. gmp计算机分类,GMP附录——计算机化系统汇总.pptx
  12. 亲测比较好用的各类软件
  13. 【第38题】2019年OCP认证12C题库062考试最新考试原题
  14. java中的String和ArrayList类
  15. 在计算机领域做研究的一些想法
  16. 【t006】三角形分形描绘问题
  17. win10用户注销后该怎么办?如何彻底删除原有的用户名
  18. 三极管放大电路参数计算
  19. 【Html标签学习】表单标签
  20. 计算机应用技术081203 专业硕士,计算机应用技术专业081203-河南理工大学研究生处...

热门文章

  1. MySQL学习第二天—操作数据库\数据表命令
  2. MYSQL主从同步的作用
  3. Mac专业的字体管理工具——“FontExplorer X”
  4. OpenLayers加载不同类类型的天地图(矢量图、影像图、地形图)并实现动态切换效果
  5. Teigha.NET V19 DWG/DXF转PDF
  6. 推荐一个好用的书摘软件
  7. 仿京东、淘宝首页,通过两层嵌套的RecyclerView实现tab的吸顶效果
  8. 离散制造业该如何实现工业信息化?
  9. 项目/个人绩效考核表
  10. 百度地图web API定位不准,定位偏移问题处理