字符串简单运算(BigDecimal相关运算)

目录

1.除法

2.乘法

3.减法

4.加法


1.除法

使用**divide(BigDecimal, int, RoundingMode)**方法进行除法运算。第一个参数是要除的 BigDecimal,第二个参数指定结果的小数位数,第三个参数是舍入模式。这里选择了 RoundingMode.HALF_UP,即四舍五入。

gpt版:

java 复制代码
import java.math.BigDecimal;
import java.math.RoundingMode;

// 假设 smDirection.getExtraction() 和 smInspect.getSunShine() 返回字符串类型
String extractionStr = smDirection.getExtraction();
String sunshineStr = smInspect.getSunShine();

// 创建 BigDecimal 对象,将字符串进行类型转换,要保证字符串时正常数值
BigDecimal extraction = new BigDecimal(extractionStr);
BigDecimal sunshine = new BigDecimal(sunshineStr);

// 进行除法运算,这里设置了精确到小数点后两位并四舍五入
BigDecimal result = extraction.divide(sunshine, 2, RoundingMode.HALF_UP);

// 现在 result 是计算结果的 BigDecimal 类型对象

代码精简版

java 复制代码
//计算流量m3/h =每天提水量/可用光照时长
BigDecimal waterFlow = new BigDecimal(smDirection.getExtraction())
        .divide(new BigDecimal(smInspect.getSunShine()), 1, BigDecimal.ROUND_HALF_UP);
//divide_>除法运算 divide(要除的数据,保留几位小数,四舍五入);

2.乘法

创建 BigDecimal 对象 首先,确保你已经有了两个 BigDecimal 对象,通常是从字符串、整数、浮点数或其他 BigDecimal 对象构造而来。

java 复制代码
BigDecimal number1 = new BigDecimal("123.45");
BigDecimal number2 = new BigDecimal("67.89");

方法一:直接运算

调用 multiply() 方法 使用其中一个 BigDecimal 对象的 multiply() 方法,传入另一个 BigDecimal 对象作为参数,即可完成乘法运算。

java 复制代码
BigDecimal product = number1.multiply(number2);

方法二:保留小数

设置精度和舍入模式 如果你需要对乘积进行精度控制(比如保留一定位数的小数)或指定特殊的舍入规则,可以使用 setScale() 方法。在调用 setScale() 时,通常会在乘法运算之后立即进行。

java 复制代码
//进行乘法运算
BigDecimal product = number1.multiply(number2);
//对结果进行四舍五入,保留两位小数
BigDecimal roundedProduct = product.setScale(2, RoundingMode.HALF_UP);

3.减法

调用 subtract() 方法 使用 number对象的 subtract() 方法,传入 number1对象作为参数,来计算它们的差。

方法一:直接计算

java 复制代码
BigDecimal result= number.subtract(number1);

方法二:保留小数

java 复制代码
//先进行减法
BigDecimal result= number.subtract(number1);
//对结果进行四舍五入,保留两位小数
BigDecimal roundedProduct = result.setScale(2, RoundingMode.HALF_UP);

4.加法

调用 add() 方法

方法一:直接计算

java 复制代码
BigDecimal result= number.add(number1);

方法二:保留小数

java 复制代码
//先进行加法运算
BigDecimal result= number.add(number1);
//对结果进行四舍五入,保留两位小数
BigDecimal roundedProduct = result.setScale(2, RoundingMode.HALF_UP);
相关推荐
qmx_0733 分钟前
HTB-Jerry(tomcat war文件、msfvenom)
java·web安全·网络安全·tomcat
为风而战41 分钟前
IIS+Ngnix+Tomcat 部署网站 用IIS实现反向代理
java·tomcat
技术无疆3 小时前
快速开发与维护:探索 AndroidAnnotations
android·java·android studio·android-studio·androidx·代码注入
架构文摘JGWZ6 小时前
Java 23 的12 个新特性!!
java·开发语言·学习
拾光师7 小时前
spring获取当前request
java·后端·spring
aPurpleBerry7 小时前
neo4j安装启动教程+对应的jdk配置
java·neo4j
我是苏苏7 小时前
Web开发:ABP框架2——入门级别的增删改查Demo
java·开发语言
xujinwei_gingko7 小时前
Spring IOC容器Bean对象管理-Java Config方式
java·spring
2301_789985947 小时前
Java语言程序设计基础篇_编程练习题*18.29(某个目录下的文件数目)
java·开发语言·学习
IT学长编程7 小时前
计算机毕业设计 教师科研信息管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
java·毕业设计·springboot·毕业论文·计算机毕业设计选题·计算机毕业设计开题报告·教师科研管理系统