Java10-BigDecimal使用(位数、舍入、计算、比较、绝对值)

1、保留位数与舍入

1、BigDecimal.setScale(newScale, roundingMode)方法用于格式化小数点

newScale表示保留位数,roundingMode表示舍入模式,舍入模式一共有8种,其值分别从0到7。

ROUND_UP0;        // 向上舍入,远离零方向舍入
ROUND_DOWN1;        // 向下舍入,向零方向舍入
ROUND_CEILING2;        // 向正无限大方向舍入
ROUND_FLOOR3;        // 向负无限大方向舍入
ROUND_HALF_UP4;        // 四舍五入:向最接近的数字方向舍入,如果与两个相邻数字的距离相等,则向上舍入
ROUND_HALF_DOWN5;        // 五舍四入:向最接近的数字方向舍入,如果与两个相邻数字的距离相等,则向下舍入
ROUND_HALF_EVEN6;        // 向最接近数字方向舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入
ROUND_UNNECESSARY7;        // 用于断言请求的操作具有精确结果,因此不发生舍入

roundingMode参数在书写过程中可以用左边的写法,也可以用右边值代替。

举例:

public static void main(String[] args) throws ParseException {BigDecimal data = new BigDecimal("2.346");BigDecimal data1 = data.setScale(2,4); // 四舍五入BigDecimal data2 = data.setScale(2,BigDecimal.ROUND_HALF_UP);// 四舍五入BigDecimal data3 = data.setScale(2, BigDecimal.ROUND_UP);// 向上取入BigDecimal data4 = data.setScale(2,BigDecimal.ROUND_DOWN); // 向下取入BigDecimal data5 = data.setScale(2,BigDecimal.ROUND_HALF_EVEN);//向最接近的舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入System.out.println(data1); // 2.35System.out.println(data2); // 2.35System.out.println(data3); // 2.35System.out.println(data4); // 2.34System.out.println(data5); // 2.35
}

2、加减乘除计算

2.1 加法 add()
2.2 减法 subtract()
2.3 乘法 multiply()
2.4 除法 divide()

举例:

public static void main(String[] args) throws ParseException {BigDecimal data1 = new BigDecimal("2.346");BigDecimal data2 = new BigDecimal("2.3");System.out.println(data1.add(data2)); // 4.646System.out.println(data1.subtract(data2)); // 0.046System.out.println(data1.multiply(data2)); // 5.3958System.out.println(data1.divide(data2)); // 2.02
}

3、大小比较

BigDecimal使用compareTo() 方法比较大小,输出为0则相等,为1则前面的大,为-1则后面的大
举例:

public static void main(String[] args) throws ParseException {BigDecimal data1 = new BigDecimal("2.346");BigDecimal data2 = new BigDecimal("2.3");if (data1.compareTo(data2) == 0) {System.out.println("相等");}if (data1.compareTo(data2) > 0) {System.out.println("data1大"); // 输出}if (data1.compareTo(data2) < 0) {System.out.println("data1小");}
}

4、绝对值

4.1 直接获取绝对值:abs()

 BigDecimal data1 = new BigDecimal("-2.346");System.out.println(data1.abs()); //2.346

4.2 获取绝对值指定精度:abs(MathContext)

 MathContext mc = new MathContext(2);BigDecimal data1 = new BigDecimal("-2.346");System.out.println(data1.abs(mc));//2.3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/670627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PCB正片和负片的区别与使用

PCB正片和负片的区别与使用 简单解释详细解释 简单解释 简单的来说&#xff0c;正片在电路板的表面&#xff08;指定是顶层和底层&#xff09;上保留我们绘图工具所画的线&#xff08;图案&#xff09;。 而负片则是将我们绘制的线&#xff08;图案&#xff09;进行腐蚀掉&am…

leetcode1079:游戏玩法分析——求留存率

求留存率 题目描述题解 题目描述 表&#xff1a;Activity --------------------- | Column Name | Type | --------------------- | player_id | int | | device_id | int | | event_date | date | | games_played | int | --------------------- &#xff08;player_id&…

mysql如何备份某些库的某些表

MySQL备份数据库 mysql如何备份某些库的某些表 要备份某个库里的部分表&#xff0c;该如何操作&#xff1f; 例如&#xff1a;要备份db01库里的20张表&#xff0c;表很多又不想备份整个库 或者要备份多个库里的不同表&#xff0c;又如何操作&#xff1f; 例如&#xff1a;备份…

JIT逆优化引发的Java服务瞬时抖动 问题排查解决方案

目录 一、背景 二、前期排查&#xff08;失败&#xff09; 三、使用神器JFR 四、学习JIT&思考解决方案 五、最终的解决方案 五、总结 一、背景 我们有一个QPS较高、机器数较多的Java服务&#xff1b;该服务的TP9999一般为几十ms&#xff0c;但偶尔会突然飙升至数秒&a…

OnlyOffice:释放无限创意,打造高效协作新体验

Onlyoffice &#x1f496;前言一、&#x1f4ab;开发者版本介绍二、&#x1f4ab;开发者版本特点三、&#x1f4ab;最新版重磅来袭&#xff0c;8.0版本介绍1.显示协作者头像2.插件 UI 界面更新 四、✨Windows部署ONLYOFFICE1.安装Erlang2.安装RabbitMQ3.安装Redis4.安装Postgre…

ts总结4、TypeScript 的数组类型

一、TS中的数组类型:所有成员的类型必须相同,但是数据量可以是无限量的,当然也可以是零成员 二、写法 数组的第一种写法: // 第一种:在数组成员的类型后面,加上一对方括号。let arr:number = [1,2,3];// 上例解析:数组arr的类型是number[],其中number表示数组成员类…

Spring boot 集成redis

一、使用spring bootspring-boot-starter-data-redis 导入maven包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> spring boot配置文件 spring.re…

PyTorch自动微分模块torch.autograd的详细介绍

torch.autograd 是 PyTorch 深度学习框架中的一个核心模块&#xff0c;它实现了自动微分&#xff08;Automatic Differentiation&#xff09;的功能。在深度学习中&#xff0c;自动微分对于有效地计算和更新模型参数至关重要&#xff0c;特别是在反向传播算法中用于计算损失函数…

CSS:两列布局

两列布局是指一列宽度固定&#xff0c;另一列自适应。效果如下&#xff1a; HTML: <div class"container clearfix"><div class"left"></div><div class"right"></div> </div>公共 CSS&#xff1a; .con…

Elasticsearch:BM25 及 使用 Elasticsearch 和 LangChain 的自查询检索器

本工作簿演示了 Elasticsearch 的自查询检索器将非结构化查询转换为结构化查询的示例&#xff0c;我们将其用于 BM25 示例。 在这个例子中&#xff1a; 我们将摄取 LangChain 之外的电影样本数据集自定义 ElasticsearchStore 中的检索策略以仅使用 BM25使用自查询检索将问题转…

【Spring Boot 3】【JPA】嵌入式对象

【Spring Boot 3】【JPA】嵌入式对象 背景介绍开发环境开发步骤及源码工程目录结构总结背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费或…

14.2 url后端过滤器(❤❤)

14.2 过滤器 1. 过滤器Filter1.1 配置形式实现过滤器1.2 过滤器生命周期1.3 过滤器特性(面试点)1.4 注解形式实现过滤器1.5 两种实现的选择2. 应用2.1 字符集过滤:统一设置请求与响应字节编码1. 配置方式实现过滤器参数化:init-param标签关键代码完整代码2. 注解方式实现2.2 多…

【Vue】指令之列表循环、表单元素绑定

Vue指令[3] 列表循环、表单元素绑定v-for指令v-model指令 列表循环、表单元素绑定 v-for指令 作用&#xff1a;根据数据生成列表结构 数组经常和v-for结合使用数组长度的更新会同步到页面上面&#xff0c;是响应式的 语法&#xff1a;(item,index) in 数据&#xff0c;其中…

React Emotion 如何优雅的使用样式(一)

简介 Emotion 是一个专为使用 JavaScript 编写 css 样式而设计的库。它提供了强大且可预测的样式组合&#xff0c;以及源映射、标签和测试实用程序等功能为开发人员提供了出色的体验&#xff0c;并且支持字符串和对象样式。 与框架无关的样式应用包 Emotion中提供了一个与框…

每日一练 | 华为认证真题练习Day180

1、关于组播分发树&#xff0c;下面说法哪些是错误的 A. 组播分发树大体分为2种&#xff1a;SPT和RPT B. PIMSM协议既可以生成RPT树&#xff0c;又可以生成SPT树 C. PIMSSM协议既可以生成SPT树&#xff0c;也可以生成SPT树 D. PIMDM协议只能生成SPT树 2、BGP协议用Peer def…

2023 OpenHarmony 年度运营报告

汇聚 70 家企业 6700名贡献者力量&#xff0c; OpenHarmony 已成为下一代智能终端操作系统根社区&#xff1b; 我们在成长,OpenHarmony 项目群成员单位增至 35 家&#xff1b; 2023 年持续迭代更新 6 个版本及 OpenHarmony4.0 重点特性简介……

Stable Diffusion 模型下载:RealCartoon3D - V14

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十下载地址模型介绍 RealCartoon3D 是一个动漫卡通混合现实风格的模型,具有真实卡通的 3D 效果,当前更新到 V14 版本。 RealCartoon3D 是我上传的第一个模型。我仍在学习这些东西,但…

计算机毕业设计 基于SpringBoot的线上教育培训办公系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

C语言数组练习以及场景练习题

写了那么久的知识点梳理&#xff0c;今天来写点自己觉得不错的练习题来分享&#xff0c;顺便来巩固自己的知识点&#xff0c;和加强题型的解决方法的记忆。今天给大家带来的有数组的找数字题目&#xff0c;以及场景找凶手的题目&#xff0c;下面让我们来看看今天的第一道题目。…

进程间通信:有名管道

如果读端关闭&#xff0c;写端继续向管道内写数据将会导致管道破裂&#xff0c;内核将会发送信号SIGPIPE到进程中&#xff0c;该信号的默认处理方式为结束进程&#xff1b; 如果写端关闭&#xff0c;读端继续从管道中读取数据将会读不到任何数据&#xff1b; 管道文件的大小固定…