BigDecimal 加减乘除 | 比较大小 | 取最大最小值 | 保留小数位 |转String|科学计数法

本文主要是介绍BigDecimal 加减乘除 | 比较大小 | 取最大最小值 | 保留小数位 |转String|科学计数法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BigDecimal 加减乘除 | 比较大小 | 取最大最小值 | 保留小数

一、加减乘除

BigDecimal num1 = new BigDecimal(2);
BigDecimal num2 = new BigDecimal(6);
BigDecimal num3 = null;--2+6 
num3 =  num1.add(num2); 	 
-- 结果:8--6-2
num3 = num2.subtract(num1);
-- 结果:4--2*6
num3 = num1.multiply(num2);
-- 结果:12--6/2
num3 = num2.divide(num1);
-- 结果:3

二、比较大小

这里比较的时候不能直接 num4.compareTo(new BigDecimal(1)) == 1 或者 -1,只能num4.compareTo(new BigDecimal(1)) > 0或 < 0 或 “= = 0”,不能直接判断1或-1

BigDecimal num4 = new BigDecimal(0);
BigDecimal num5 = new BigDecimal(1);
BigDecimal num6 = new BigDecimal(2);-- 小于 0<1
int i = num4.compareTo(new BigDecimal(1));	-- 结果:-1-- 等于 1=1
i = num5.compareTo(new BigDecimal(1))	-- 结果:0-- 大于 2>1
i = num6.compareTo(new BigDecimal(1))	-- 结果:1-- 常用一步到位进行判断:
if(num4.compareTo(new BigDecimal(1)) > 0){return true;
}

三、取最大最小值

BigDecimal num7 = new BigDecimal(11);
BigDecimal num8 = new BigDecimal(22);-- 比较两个数的大小,返回小的数
System.out.println(num7.min(num8));
-- 结果:11-- 比较两个数的大小,返回大的数
System.out.println(num7.max(num8));
-- 结果:22

四、保留小数

-- 注意这里new Bigdecimal不能直接使用floatdouble类型BigDecimal num9 = new BigDecimal("3.14559");
BigDecimal num10 = null;-- 表示直接去掉多余的位数,不进行四舍五入
num10 = num9.setScale(2, BigDecimal.ROUND_DOWN);
System.out.println(num10);
-- 结果:3.14-- 表示进位处理,即四舍五入
num10 = num9.setScale(2, BigDecimal.ROUND_UP);
System.out.println(num10);
-- 结果:3.15

五、遇到的坑,有小数位的精度问题

new 新的对象的时候整数可以直接这样:new BigDecimal(10);但是带小数的会有精度损失,比如:new BigDecimal(10.13456),所以带小数的要使用字符串进行处理:new BigDecimal(“10.13456”)。

六、转String

https://www.cnblogs.com/heqiyoujing/p/10409965.html

public static void main(String[] args) {// 浮点数的打印System.out.println(new BigDecimal("10000000000").toString());// 普通的数字字符串System.out.println(new BigDecimal("100.000").toString());// 去除末尾多余的0System.out.println(new BigDecimal("100.000").stripTrailingZeros().toString());// 避免输出科学计数法System.out.println(new BigDecimal("100.000").stripTrailingZeros().toPlainString());}

运行结果:

10000000000
100.000
1E+2
100

科学计数法问题
可能存在问题使用法:
bigDecimal.setScale(2, BigDecimal.ROUND_UP).stripTrailingZeros().toPlainString()
不确定建议
先得到bigDecimal的setScale
后另外String=bigDecimal…stripTrailingZeros().toPlainString()

七、取反

negate()

八、取绝对值

java.math.BigDecimal.abs()返回一个BigDecimal,其值是此BigDecimal的绝对值

这篇关于BigDecimal 加减乘除 | 比较大小 | 取最大最小值 | 保留小数位 |转String|科学计数法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

SQL Server 查询数据库及数据文件大小的方法

《SQLServer查询数据库及数据文件大小的方法》文章介绍了查询数据库大小的SQL方法及存储过程实现,涵盖当前数据库、所有数据库的总大小及文件明细,本文结合实例代码给大家介绍的非常详细,感兴趣的... 目录1. 直接使用SQL1.1 查询当前数据库大小1.2 查询所有数据库的大小1.3 查询每个数据库的详

Python如何实现高效的文件/目录比较

《Python如何实现高效的文件/目录比较》在系统维护、数据同步或版本控制场景中,我们经常需要比较两个目录的差异,本文将分享一下如何用Python实现高效的文件/目录比较,并灵活处理排除规则,希望对大... 目录案例一:基础目录比较与排除实现案例二:高性能大文件比较案例三:跨平台路径处理案例四:可视化差异报

redis数据结构之String详解

《redis数据结构之String详解》Redis以String为基础类型,因C字符串效率低、非二进制安全等问题,采用SDS动态字符串实现高效存储,通过RedisObject封装,支持多种编码方式(如... 目录一、为什么Redis选String作为基础类型?二、SDS底层数据结构三、RedisObject

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

MySQL中比较运算符的具体使用

《MySQL中比较运算符的具体使用》本文介绍了SQL中常用的符号类型和非符号类型运算符,符号类型运算符包括等于(=)、安全等于(=)、不等于(/!=)、大小比较(,=,,=)等,感兴趣的可以了解一下... 目录符号类型运算符1. 等于运算符=2. 安全等于运算符<=>3. 不等于运算符<>或!=4. 小于运

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

java String.join()方法实例详解

《javaString.join()方法实例详解》String.join()是Java提供的一个实用方法,用于将多个字符串按照指定的分隔符连接成一个字符串,这一方法是Java8中引入的,极大地简化了... 目录bVARxMJava String.join() 方法详解1. 方法定义2. 基本用法2.1 拼接

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.