Java四舍五入保留两位小数

Java四舍五入保留两位小数文章目录Java四舍五入保留两位小数一、前言环境二、正文BigDecimalDecimalFormatMathcommons-math3String#formatJava四舍五入保留两位小数一、前言环境开发工具:IntelliJIDEAJDK:1.8BigDecimal:https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.htmlDecimalFormat:https://docs.oracle.com/java

大家好,又见面了,我是你们的朋友全栈君。

Java四舍五入保留两位小数

一、前言

环境

  • 开发工具:IntelliJ IDEA
  • JDK:1.8

BigDecimal:https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html

DecimalFormat:https://docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html

Math:https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html

apache commons-math:https://commons.apache.org/proper/commons-math/

maven repository:https://mvnrepository.com/

二、正文

BigDecimal

  • RoundingMode
算法 说明
ROUND_UP 舍入模式从零舍入
ROUND_DOWN 舍入模式向零舍入
ROUND_CEILING 舍入模式向正无穷大舍入
ROUND_FLOOR 舍入模式向负无穷大舍入
HALF_UP 舍入模式向“最近的邻居”舍入,除非两个邻居是等距的,在这种情况下向上舍入
HALF_DOWN 舍入模式向“最近的邻居”舍入,除非两个邻居是等距的,在这种情况下向下舍入
HAIL_EVEN 舍入模式向“最近的邻居”舍入,除非两个邻居是等距的,在这种情况下,向偶数邻居舍入
UNNECESSARY 舍入模式断言所请求的操作具有精确的结果,因此不需要舍入
  • 代码
double num = 3333.445555;
// BigDecimal
BigDecimal bigDecimal = new BigDecimal(num);
bigDecimal = bigDecimal.setScale(2, RoundingMode.HALF_UP);
System.out.println("bigDecimal="+ bigDecimal.doubleValue());

DecimalFormat

double num = 3333.445555;
// DecimalFormat
DecimalFormat decimalFormat = new DecimalFormat("#.##");
String numByDF = decimalFormat.format(num);
System.out.println("decimalFormat="+ numByDF);

Math

double num = 3333.445555;
// Math
double numByM = Math.round(num*100.0) / 100.0;
System.out.println("numByM="+ numByM);

commons-math3

  • maven 依赖
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-math3</artifactId>
    <version>3.6.1</version>
</dependency>
  • 代码
double num = 3333.445555;
// commons-math3
double numByM3 = Precision.round(num, 2);
System.out.println("numByM3="+ numByM3);

String#format

double num = 3333.445555;
// String#format
String numByStr = String.format("%.2f", num);
System.out.println("String.format="+ numByStr);
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143295.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sublime简介

    sublime简介

    2021年9月18日
    60
  • 前端vue面试题2020及答案_c++ 面试题

    前端vue面试题2020及答案_c++ 面试题总结出来的Vue面试题,持续更新…

    2025年10月6日
    4
  • 美国空间Hostease支付宝人民币购买教程图解[通俗易懂]

    美国空间Hostease支付宝人民币购买教程图解[通俗易懂]这段时间买国外主机的筒子们越来越多,而付款就是首先摆在大家眼前的一道障碍,大部分美国主机商只能通过信用卡购买,付款不方便,因此能够使用支付宝支付的主机商也备受关注。而目前全球支持支付宝付款的美国主机商一共就三家,分别是ixwebhosting、Godaddy、HostEase。第二道障碍就是网站英文界面问题,目前只有ixwebhosting开通了中文站点,因此大家购买ixwebhost…

    2022年10月18日
    3
  • origin双y轴柱状图_双Y轴柱状图和折线图

    origin双y轴柱状图_双Y轴柱状图和折线图Origin双Y轴柱状图画法及两柱重合有间居问题解决1、所遇问题2、作图方法1、所遇问题做双Y轴柱状图时,一开始是将左Y轴数据和右Y轴数据放在了两个sheet中,一顿操作最后发现两个柱要么重合要么有间距,怎么调都不行,就像下图这样。。。2、作图方法正确作图方法:1、将X数据左Y数据以及右Y数据放在一个sheet中,主要这里边的两个空列,是正确画图的关键。2、选择ABCD四列画柱状图,注意这里C列为误差,画出来图你就明白D列作用是让柱子向左偏一格。3、点击空白区域,右键加入右Y轴,也

    2022年9月26日
    7
  • pytest-allure_苹果11验机报告

    pytest-allure_苹果11验机报告前言allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面。mac环境:

    2022年7月29日
    7
  • 物联网之Zigbee系统开发一(zigbee简介)[通俗易懂]

    zigbee简介:无线传感网络的无线通信技术可以采用zigbee,蓝牙,wifi和红外等。ZigBee技术是一种短距离,低复杂度,低功耗,低成本,低数据速率的双向无线通信技术,是一组基于IEEE802.15.4无线标准研制开发的有组网,安全和应用软件方面的通信技术。zigbee应用范围:   智能家居-对家用电器的控制和家庭娱乐系统的管理。   楼宇自动化-整合并集中管理照…

    2022年4月8日
    94

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号