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

2024-02-06 17:44

本文主要是介绍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

这篇关于Java10-BigDecimal使用(位数、舍入、计算、比较、绝对值)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/685072

相关文章

Spring IOC的三种实现方式详解

《SpringIOC的三种实现方式详解》:本文主要介绍SpringIOC的三种实现方式,在Spring框架中,IOC通过依赖注入来实现,而依赖注入主要有三种实现方式,构造器注入、Setter注入... 目录1. 构造器注入(Cons编程tructor Injection)2. Setter注入(Setter

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

java中的HashSet与 == 和 equals的区别示例解析

《java中的HashSet与==和equals的区别示例解析》HashSet是Java中基于哈希表实现的集合类,特点包括:元素唯一、无序和可包含null,本文给大家介绍java中的HashSe... 目录什么是HashSetHashSet 的主要特点是HashSet 的常用方法hasSet存储为啥是无序的

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

使用TomCat,service输出台出现乱码的解决

《使用TomCat,service输出台出现乱码的解决》本文介绍了解决Tomcat服务输出台中文乱码问题的两种方法,第一种方法是修改`logging.properties`文件中的`prefix`和`... 目录使用TomCat,service输出台出现乱码问题1解决方案问题2解决方案总结使用TomCat,

IDEA运行spring项目时,控制台未出现的解决方案

《IDEA运行spring项目时,控制台未出现的解决方案》文章总结了在使用IDEA运行代码时,控制台未出现的问题和解决方案,问题可能是由于点击图标或重启IDEA后控制台仍未显示,解决方案提供了解决方法... 目录问题分析解决方案总结问题js使用IDEA,点击运行按钮,运行结束,但控制台未出现http://

对postgresql日期和时间的比较

《对postgresql日期和时间的比较》文章介绍了在数据库中处理日期和时间类型时的一些注意事项,包括如何将字符串转换为日期或时间类型,以及在比较时自动转换的情况,作者建议在使用数据库时,根据具体情况... 目录PostgreSQL日期和时间比较DB里保存到时分秒,需要和年月日比较db里存储date或者ti

解决Spring运行时报错:Consider defining a bean of type ‘xxx.xxx.xxx.Xxx‘ in your configuration

《解决Spring运行时报错:Considerdefiningabeanoftype‘xxx.xxx.xxx.Xxx‘inyourconfiguration》该文章主要讲述了在使用S... 目录问题分析解决方案总结问题Description:Parameter 0 of constructor in x