String转BigDecimal,BigDecimal常用操作,以及避免踩坑

2023-11-07

String转BigDecimal

String a = "50.00";  //字符串类型,必须是数字,否则会报错, java.lang.NumberFormatException 异常
BigDecimal b =new BigDecimal(a);

BigDecimal加法运算

BigDecimal planeTax=new BigDecimal(bookInfo.getPlaneTax());
BigDecimal yq=new BigDecimal(bookInfo.getYq());
BigDecimal publishPrice =  new BigDecimal(cabinInfo.getPublishPrice());
totalPrice =publishPrice.add(planeTax).add(yq);

BigDecimal减法运算

BigDecimal planeTax=new BigDecimal(bookInfo.getPlaneTax());
BigDecimal yq=new BigDecimal(bookInfo.getYq());
BigDecimal publishPrice =  new BigDecimal(cabinInfo.getPublishPrice());
totalPrice =publishPrice.subtract(planeTax).subtract(yq);

BigDecimal乘法运算

BigDecimal planeTax=new BigDecimal(bookInfo.getPlaneTax());
BigDecimal yq=new BigDecimal(bookInfo.getYq());
BigDecimal publishPrice =  new BigDecimal(cabinInfo.getPublishPrice());
totalPrice =publishPrice.multiply(planeTax).multiply(yq);

BigDecimal避免踩坑

 

BigDecimal planeTax=new BigDecimal(bookInfo.getPlaneTax());//string数据转换BigDecimal
  BigDecimal yq=new BigDecimal(bookInfo.getYq());//string数据转换BigDecimal
  BigDecimal publishPrice =  new BigDecimal(cabinInfo.getPublishPrice());//string数据转换BigDecimal

//进行相加再相乘操作时注意不要直接用符号+、-、*等,后面是四舍五入的格式
  totalPrice =(publishPrice.add(planeTax).add(yq)).multiply( new BigDecimal(model.getBookInfoList().size()))

  .setScale(2,     BigDecimal.ROUND_HALF_UP); 
  totalPrice = price.subtract(couponMoney);

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

String转BigDecimal,BigDecimal常用操作,以及避免踩坑 的相关文章

  • 如何克服原语按值传递的事实

    我有一段很长的代码来计算两个值 doubles 对我来说 我在几个地方使用了这段代码 为了坚持 DRY 原则 我应该将这段代码重构为一个很好的单元测试方法 但是我不能让它返回两个双精度数 而双精度数是原始的 因此不能按值传递和操作 我能想到
  • Eclipse 在源代码管理中保存操作

    我们希望找到一种在签入之前执行代码标准的 轻量级 方法 我们真的很喜欢使用 Eclipse 内置的想法保存操作 go to Preferences gt gt Java gt gt Editor gt gt Save Actions 其中有
  • Hibernate注解放置问题

    我有一个我认为很简单的问题 我见过两种方式的例子 问题是 为什么我不能将注释放在字段上 让我举一个例子 Entity Table name widget public class Widget private Integer id Id G
  • 如何创建一个显示 Spinners 的 x 和 y 值的表格?

    我想创建一个位于图表右侧的表格 其中显示 2 列 x 和 y 值已输入到xSpin and ySpin旋转器 我已经画了一张我想要桌子放置的位置的图 我尝试过在网格窗格布局中使用文本框来创建表格并将值直接输入到文本框网格中 但是我无法将它们
  • org.apache.sling.api.resource,version=[2.3,3) -- 无法解析

    您好 我无法访问我的项目内容 我已经上传了从 CQ 访问内容所需的所有包 我唯一能看到的是 org apache sling api resource version 2 3 3 无法解析 这是否是异常的原因 如果是 请告诉我如何解决 中Q
  • OSGi:如果不取消服务会发生什么

    这是我获取 OSGi 服务的方式 ServiceReference reference bundleContext getServiceReference Foo class getName Foo foo Foo bundleContex
  • 如何在不超过最大值的情况下增加变量?

    我正在为学校开发一个简单的视频游戏程序 我创建了一个方法 如果调用该方法 玩家将获得 15 点生命值 我必须将生命值保持在最大值 100 并且由于我目前的编程能力有限 我正在做这样的事情 public void getHealed if h
  • 当从服务类中调用时,Spring @Transactional 不适用于带注释的方法

    在下面的代码中 当方法内部 是从内部调用的方法外部 应该在交易范围内 但事实并非如此 但当方法内部 直接从调用我的控制器class 它受到事务的约束 有什么解释吗 这是控制器类 Controller public class MyContr
  • 如何模拟从抽象类继承的受保护子类方法?

    如何使用 Mockito 或 PowerMock 模拟由子类实现但从抽象超类继承的受保护方法 换句话说 我想在模拟 doSomethingElse 的同时测试 doSomething 方法 抽象超类 public abstract clas
  • Java 中的“Lambdifying”scala 函数

    使用Java和Apache Spark 已用Scala重写 面对旧的API方法 org apache spark rdd JdbcRDD构造函数 其参数为 AbstractFunction1 abstract class AbstractF
  • 如何在 Java 中测试一个类是否正确实现了 Serialized(不仅仅是 Serialized 的实例)

    我正在实现一个可序列化的类 因此它是一个与 RMI 一起使用的值对象 但我需要测试一下 有没有办法轻松做到这一点 澄清 我正在实现该类 因此在类定义中添加 Serialized 很简单 我需要手动序列化 反序列化它以查看它是否有效 我找到了
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • 在 Spring 中重构这个的最佳方法?

    private final ExecutorService executorParsers Executors newFixedThreadPool 10 public void parse List
  • 我可以创建自定义 java.* 包吗?

    我可以创建一个与预定义包同名的自己的包吗在Java中 比如java lang 如果是这样 结果会怎样 这难道不能让我访问该包的受保护的成员 如果不是 是什么阻止我这样做 No java lang被禁止 安全管理器不允许 自定义 类java
  • 将 Azure AD 高级自定义角色与 Spring Security 结合使用以进行基于角色的访问

    我创建了一个演示 Spring Boot 应用程序 我想在其中使用 AD 身份验证和授权 并使用 AD 和 Spring Security 查看 Azure 文档 我执行了以下操作 package com myapp contactdb c
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • GUI Java 程序 - 绘图程序

    我一直试图找出我的代码有什么问题 这个想法是创建一个小的 Paint 程序并具有红色 绿色 蓝色和透明按钮 我拥有我能想到的让它工作的一切 但无法弄清楚代码有什么问题 该程序打开 然后立即关闭 import java awt import

随机推荐

  • MinIO简单安装及使用

    MinIO简介 MinIO是一个开源的 云原生的对象存储服务器 它提供了简单 高性能 安全 可扩展的存储服务 MinIO最初是作为一个Amazon S3兼容的对象存储服务器开发的 可以通过S3 API与其他应用程序和服务进行交互 MinIO
  • 移动WEB开发之-REM(rem)布局

    目录 移动WEB开发之REM布局 rem基础 rem单位 媒体查询 什么是媒体查询 媒体查询语法规范 1 mediatype 查询类型 2 关键字 3 媒体特性 4 媒体查询书写规则 less 基础 维护css弊端 Less 介绍 Less
  • 如何将本地深度学习项目放到阿里云服务器(CentOS 7)上运行(基本完整)

    由于比赛需要 需要将本地的一个Python项目 keras框架的深度学习代码 放到云服务器上运行 以下是我的历程 以及踩过的坑 希望对有相同需要的人有所帮助 步骤一 购买学生机 阿里云官网认证学生用户 24周岁以下 返回阿里云首页 查看产品
  • touch手势事件及功能封装

    文章目录 基本概念 事件类型 事件对象的属性 touch事件封装 单击 双击 滑动方向 上下左右 距离 角度 缩放 旋转 常用功能封装 滑动图片浏览 实现拖拽操作 游戏角色移动 跳跃 封装手写板功能 在现代Web开发中 移动设备的普及使得触
  • esmini LongSpeedAction修改

    esmini的LongSpeedAction 如果shape设置为step的话 DynamicsDimension实际就无效了 因为step的意思就是直接设置 在LongSpeedAction的Start过程中设置完就结束了 Step就不在
  • 2、隐私计算--安全多方计算

    目录 安全多方计算 安全多方计算的技术架构 安全挑战敌手模型 安全多方计算关键技术 安全多方计算主要特点 安全多方计算应用 安全多方计算与区块链 JUGO平台 参考 https blog csdn net w365904 article d
  • 如何将MATLAB程序编译成独立可执行的程序

    一 生成独立可执行的程序 exe文件 步骤1 安装编译器 可有多种选择 matlab自带了一个LCC 推荐使用VC 6 0 我基于VS 2003实现 2 设置编译器 在matlab命令行输入mbuild setup以及mex setup 选
  • 【Diffusion模型系列1】DDPM: Denoising Diffusion Probabilistic Models

    0 楔子 Diffusion Models 扩散模型 是在过去几年最受关注的生成模型 2020年后 几篇开创性论文就向世界展示了扩散模型的能力和强大 Diffusion Models Beat GANs on Image Synthesis
  • MATLAB 神经网络NAR时间序列做预测

    本人用到MATLAB神经网络NAR时间序列做预测 根据网上的程序和MATLAB说明 整理出了程序如下 公共号 数据统计分析与挖掘 中回复 数据 获取本文所需数据 公共号 数据统计分析与挖掘 中回复 书籍 获取50本数据分析 python 统
  • mac vscode替换查找以及格式化快捷键

    command option f 当前文件替换 command f 当前文件查找 command shift h 全局替换 command shift f 全局查找 option shift F 格式化代码
  • openwrt如何关掉防火墙?

    答 1 阻止防火墙服务开机自动启动 etc init d firewall disable 2 关闭防火墙 etc init d firewall stop 转载于 https www cnblogs com dakewei p 10784
  • java math 保留_java怎么保留两位小数?具体方法是什么?

    小伙伴们在平时写程序的时 有没有需要在界面或者页面上保留小数点后两位的数据时候呢 今天 小编就来为大家讲一讲如何在Java中保留小数点后两位 一 使用java math BigDecimal 使用BigDecimal 保留小数点后两位 pu
  • 【环境搭建】机械革命 Z3 Air 双系统 原生Windows10 +Ubuntu 20.04.2.0 LTS 桌面版 配置

    欲望是一半生命 冷漠是一半死亡 文章目录 前言 一 前期准备 二 开始安装 1 压缩空间 2 制作安装U盘 3 安装系统 4 安装显卡驱动 总结 前言 众所周知 在Windows上尝试搭建深度学习环境只会带来无尽的痛苦 在Ubuntu上亦是
  • 【Python 虚拟环境创建】解决遇到的问题并在vscode上测试

    目录 一 前提准备 二 python虚拟环境创建 解决问题 virtualenv mkvirtualenv 不是内部或外部命令 也不是可运行的程序 或批处理文件 解决问题 pycharm终端提示无法加载文件 E software pytho
  • Try-Finally执行顺序的经典面试题

    try catch finally finally一定都会去执行 常在finally进行释放锁 释放连接等操作 案例一代码分析 package top chenxi test Created with IntelliJ IDEA Autho
  • LTspice 仿真电容阻抗特性曲线

    一 仿真原理图如图所示 二 信号源参数 三 电容参数 其中包含了ESR ESL 四 执行参数为 ac dec 1000 1 1000Meg 扫频模式 五 开始仿真 然后设置曲线为下图所示 电容电压除以电容电流得到阻抗频率特性曲线 六 得出电
  • [编程开发工具-6]:master 分支和 dev 分支区别

    目录 Git 中的 master 分支和 dev 分支之间有几个重要的区别 Git分支实践 master develop Feature feature 故障号 description hotfix Git 中的 master 分支和 de
  • set和unordered_set的类型要求

    set 需要支持小于比较 或者显示提供比较的仿函数 unordered set 可以转换成整型取模或者提供转换成整型的仿函数 可以支持等于比较或者提供等于笔记的仿函数
  • 【RDMA】qp数量和RDMA性能(节选)

    目录 QP数量上升性能下降 QP数量上升性能下降的原因 作者 bandaoyu 原始连接 https blog csdn net bandaoyu article details 122947096 spm 1001 2014 3001 5
  • String转BigDecimal,BigDecimal常用操作,以及避免踩坑

    String转BigDecimal String a 50 00 字符串类型 必须是数字 否则会报错 java lang NumberFormatException 异常 BigDecimal b new BigDecimal a BigD