java的BigDecimal操作

news2024/10/7 2:24:49

1.保留两位小数不进位

public static void main(String[] args) {
        BigDecimal bigDecimal1 = new BigDecimal("1234.8888");
        String bigDecimal1s = bigDecimal1.setScale(2, RoundingMode.DOWN).toPlainString();
        System.out.println(bigDecimal1s);
    }

结果:结果

2.比较大小

if (cspMarketOrderInfoPayment.getConfirmMoney() == null || cspMarketOrderInfoPayment.getConfirmMoney().compareTo(BigDecimal.ZERO) <= 0) {
            throw new CustomException("收款金额需要大于0!");
        }
        
if (bean.getOqty().compareTo(BigDecimal.ZERO) > 0) {
                    throw new CustomException("该商品实际有库存或商品正在出库中,不允许对 商品名称、外部商品编码、最小单位的规格描述、副单位的规格描述、副单位启用状态 进行修改!");
                }

3.集合遍历+结果相加

List<CspInventoryInfo> allocationDetailsList = inventoryInfoMapper.selectInventoryAllocationDetailsByLotid(lotid);
        BigDecimal oqtyNum = allocationDetailsList.stream()
                .filter(i -> i.getOqty() != null)
                .map(CspInventoryInfo::getOqty)
                .reduce(BigDecimal.ZERO, BigDecimal::add);

4.向上取整保留4位小数(最后一位会进一)

public static void main(String[] args) {
        BigDecimal reviewRate = new BigDecimal("0.0000");
        reviewRate = new BigDecimal("123")
                .divide(new BigDecimal("9999"), 4, BigDecimal.ROUND_UP);
//        BigDecimal bigDecimal = reviewRate.setScale(2, BigDecimal.ROUND_DOWN);
        System.out.println(reviewRate);
    }


complaintRate = new BigDecimal(String.valueOf(workOrderNumber)).divide(new BigDecimal(String.valueOf(orderInfoNumber)), 10, BigDecimal.ROUND_DOWN)
                        .multiply(new BigDecimal("100"));
                dataCockpitWorkOrderResult.setComplaintSummaryRate(complaintRate.setScale(5, BigDecimal.ROUND_UP));

5.除法+乘法

BigDecimal targetReachValue = temperatureCoverageRate.divide(targetValue, 4, BigDecimal.ROUND_UP).multiply(new BigDecimal("100"));

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

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

相关文章

为什么不建议项目中使用触发器

1.什么是触发器 触发器&#xff08;trigger&#xff09;是一种数据库对象&#xff0c;可以看作由事件来触发的特殊存储过程。当一个特定的事件发生时&#xff0c;会自动执行在数据库表上的某些操作&#xff0c;比如当对一个表进行操作&#xff08;insert&#xff0c;delete&am…

关系型数据库中如何进行事务管理

关系型数据库中如何进行事务管理 在关系型数据库中&#xff0c;事务管理是一项非常重要的功能。它允许数据库管理员在一个或多个数据库操作中实现原子性、一致性、隔离性和持久性&#xff08;ACID&#xff09;。 事务是一组数据库操作&#xff0c;它们必须全部执行或全部回滚…

【ACL2023】基于电商多模态概念知识图谱增强的电商场景图文模型FashionKLIP

近日&#xff0c;阿里云机器学习平台PAI与复旦大学肖仰华教授团队、阿里巴巴国际贸易事业部ICBU合作在自然语言处理顶级会议ACL2023上发表基于电商多模态概念知识图谱增强的电商场景图文模型FashionKLIP。FashionKLIP是一种电商知识增强的视觉-语言模型。该论文首先设计了从大规…

String类1

String类 单个字符可以用char类型保存&#xff0c;多个字符组成的文本就需要保存在String对象中&#xff0c;String通常被称为字符串&#xff0c;一个对象最多占用4GB的文本类容。 声明字符串 1.字符串必须包含在“”中 例&#xff1a;”234”、”你好&#xff01;” 2.声明字…

GOLANG进阶:govalidator过滤器,MD5,JWT身份验证,redis

1.govalidator过滤器&#xff1a;类似于正则匹配&#xff0c;主要放在结构体注释部分&#xff0c;有些验证没有&#xff0c;需要自己替换&#xff08;把required部分替换成正则表达式&#xff09; 引入资源包&#xff08;两种方式&#xff09;&#xff1a; go get github.com/…

ubuntu重启后,docker容器中的mysql怎么重启

1、第一次安装的时候&#xff0c;参考使用docker安装mysql主从集群_docker mysql主从集群_veminhe的博客-CSDN博客 这篇博客操作的。 2、但是突然有一天&#xff0c;我的腾讯云主机被迫重启了&#xff0c;发现docker容器中的mysql挂掉了 3、搜资料看下 参阅了Docker启动mysq…

css之:is()、:where()和:has()伪元素的运用、使用、important

文章目录 简介1、:is()2、:where()3、:has() 简介 :is()、:where()和:has()伪元素是CSS中用于样式化元素的非常强大的工具。它们是在CSS选择器Level4规范中引入的。它们允许我们将样式应用于符合特定条件的任何元素&#xff0c;例如元素的类型、元素的位置和元素的后代。 1、:i…

科研热点|国自然会评季:地方高校申请国家基金难度有多大?

2022年国自然放榜后&#xff0c;一位评审专家的函评意见引发关注。 这位专家在一份函评意的第四部分其他建议中写到&#xff1a; 地方高校的老师不容易。申请人发表了不少好论文&#xff0c;但从未获得过基金支持&#xff0c;应该支持这种在没有项目和条件下还很好开展了研究…

Kubernetes中Pod的升级和回滚

Kubernetes中Pod的升级和回滚 本文说说 Pod 的升级和回滚问题。 当集群中的某个服务需要升级时&#xff0c;我们需要停止目前与该服务相关的所有 Pod&#xff0c;然后下载新版本镜像并创建新的 Pod。如果集群规模比较大&#xff0c;则这个工作变成了一个挑战&#xff0c;而且…

【Linux】 Linus世界,WIndows VS Linux

文章目录 前言WindowsLinux操作系统Windows VS Linux收费情况技术支持安全性开源 区别 前言 在电脑世界有两种十分常见的电脑操作系统——Linux与和Windows&#xff0c;相信对电脑有一定了解的人对它们一定并不陌生&#xff01;但是在我们的使用过程中&#xff0c;是否有什么事…

大公司为什么禁止在 Spring Boot 项目中使用 @Autowired 注解?

1、说明 最近公司升级框架&#xff0c;由原来的spring framerwork 3.0升级到5.0&#xff0c;然后写代码的时候突然发现idea在属性注入的 Autowired 注解上给出警告提示&#xff0c;就像下面这样的&#xff0c;也挺懵逼的&#xff0c;毕竟这么写也很多年了。 Field injection i…

leetcode 147.对链表进行插入排序

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;对链表进行插入排序 思路与图解&#xff1a; 遍历链表&#xff0c;当前结点依次与前面的结点比较&#xff0c;选择插入位置。每次与前面的结点比较需要从头开始比较&#xff0c;所以定义一个 tempHead 指针&#xff0c;…

Python实现PSO粒子群优化算法优化LightGBM回归模型(LGBMRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 PSO是粒子群优化算法&#xff08;Particle Swarm Optimization&#xff09;的英文缩写&#xff0c;是一…

CopyRE关系抽取

CopyRE 模型包括编码器和解码器两部分 编码器&#xff1a;将输入的句子&#xff08;源句子&#xff09;转换为固定长度的语义向量 解码器&#xff1a;读取该矢量并直接生成三元组 Encoder 编码器使用Bi-RNN对输入句子进行编码。 Decoder 解码器会直接生成三元组。 1、 解码…

仅用js代码实现模态框

很多时候我们经常会用ui框架实现模态框的使用&#xff0c;但是&#xff0c;如果哪一天告诉我们&#xff0c;如何仅用js代码实现一个模态框该怎么办呢&#xff1f; 这里就要用到很多js中的基础方法运用了&#xff0c;我们先看如下代码 var logDiv document.createElement(&quo…

Java版本电子招标采购系统源码:—实现多寻源比价,风险预警

营造全面规范安全的电子招投标环境&#xff0c;促进招投标市场健康可持续发展 传统采购模式面临的挑战 一、立项管理 1、招标立项申请 功能点&#xff1a;招标类项目立项申请入口&#xff0c;用户可以保存为草稿&#xff0c;提交。 2、非招标立项申请 功能点&#xff1a;非招标…

vue2跨组件传值、透明传输($attrs 和 $listeners )

当在 Vue.js 组件中使用 $attrs 和 $listeners 时&#xff0c;它们提供了一种方便的方式来处理传递给组件的属性和事件监听器。 1.$attrs 是一个对象&#xff0c;包含了父组件传递给当前组件但未被当前组件声明的 props。这对于实现“透明传输”非常有用。 2.$listeners 也是…

EMQ 联合英特尔、云轴科技 ZStack 推出泛工业物联网联合解决方案

近日,EMQ 携手英特尔与云轴科技 ZStack 推出泛工业物联网联合解决方案,基于云原生超融合,在挖掘生产数据价值的同时有效降低综合建设成本,为用户提供一站式数据链路及 IT 基础设施解决方案。 工业能耗大户面临的关键挑战 工业正迈入一个全新的物联网时代,海量数据计算需求涌现…

实验三 交换机基本配置

文章目录 实验目的实验原理实验内容实验总结 实验目的 掌握 Cisco Packet Tracer 模拟软件的基本使用方法&#xff1b;掌握交换机的基本配置方法和命令&#xff1b;掌握交换机 telnet 配置方法&#xff1b;理解交换机不同配置视图的作用&#xff1b; 实验原理 &#xff08;一…

Linux Shell 脚本编程学习之【第1章 Shell脚本编程概述】

《第1章 Shell脚本编程概述》 1 Linux简介2 Shell 简介3 Linux登录方式4 脚本编程优势4.1 shell脚本编程优势 5 shell脚本基本元素6 执行shell脚本 1 Linux简介 1991年芬兰赫尔辛基大型学生Linus Torvals开发了Linux内核。 2 Shell 简介 1、Shell是一种具备特殊功能的程序。…