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

相关文章

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

java String.join()的使用小结

《javaString.join()的使用小结》String.join()是Java8引入的一个实用方法,用于将多个字符串按照指定分隔符连接成一个字符串,本文主要介绍了javaString.join... 目录1. 方法定义2. 基本用法2.1 拼接多个字符串2.2 拼接集合中的字符串3. 使用场景和示例3

C# string转unicode字符的实现

《C#string转unicode字符的实现》本文主要介绍了C#string转unicode字符的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录1. 获取字符串中每个字符的 Unicode 值示例代码:输出:2. 将 Unicode 值格式化

MySQL8.0设置redo缓存大小的实现

《MySQL8.0设置redo缓存大小的实现》本文主要在MySQL8.0.30及之后版本中使用innodb_redo_log_capacity参数在线更改redo缓存文件大小,下面就来介绍一下,具有一... mysql 8.0.30及之后版本可以使用innodb_redo_log_capacity参数来更改

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

对postgresql日期和时间的比较

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

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型