BigDecimal用法和注意点

Wi-Fi+BLE双模模块FGM842D:从选型到量产的技术要点解析 物联网设备的无线连接方案正在从单一Wi-Fi或BLE向双模融合演进。双模模块通过共享射频前端与时分复用技术,在2.4GHz频段实现Wi-Fi与BLE的共存,既保证了云端可达性,又提供了低功耗近场配网通道。这类SoC化模块集成了MCU与射频,能独立承载轻量级业务逻辑,大幅简化硬件设计。在智能家居、工业IoT等场景中,工程师需要关注配网体验、功耗预算、主控资源分配及天线布局等实际问题。移远通信FGM842D系列正是面向这类需求推出的标准化双模方案,其产品定位与实战开发流程,为物联网设备从选型到量产提供了可借鉴的 阅读详情

不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。

可以处理任意长度的浮点数运算。

BigDecimal add(BigDecimal val) //BigDecimal 加法

BigDecimal subtract (BigDecimal val) //BigDecimal 减法

BigDecimal multiply (BigDecimal val)  //BigDecimal 乘法

BigDecimal divide (BigDecimal val,RoundingMode mode) 

下面是简单的运算:

BigDecimal aa = new  BigDecimal(135.95 ); 

BigDecimal bb=new  BigDecimal("100" ); 

BigDecimal result=aa.multiply(bb); 

下面是注意 :

1.result.setScale(2 ,BigDecimal.ROUND_HALF_EVEN),这是一个什么运算呢,看API:

可以通过两种类型的操作来处理 BigDecimal 的标度:标度/舍入操作和小数点移动操作。标度/舍入操作(setScale 和 round)返回 BigDecimal,其值近似地(或精确地)等于操作数的值,但是其标度或精度是指定的值;即:它们会增加或减少对其值具有最小影响的存储数的精度。小数点移动操作(movePointLeft 和 movePointRight)返回从操作数创建的 BigDecimal,创建的方法是按指定方向将小数点移动一个指定距离。

“2”就表示小数点后面留取几位,而后面的 BigDecimal.ROUND_HALF_EVEN表示的是 看A PI

枚举常量摘要 
CEILING  
          向正无限大方向舍入的舍入模式。
DOWN  
          向零方向舍入的舍入模式。
FLOOR  
          向负无限大方向舍入的舍入模式。
HALF_DOWN  
          向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向下舍入。
HALF_EVEN  
          向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
HALF_UP  
          向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向上舍入。
UNNECESSARY  
          用于断言请求的操作具有精确结果的舍入模式,因此不需要舍入。
UP  
          远离零方向舍入的舍入模式。
 


2.关于BigDecimal格式化

public String formatValue(Object value){
        String content = null;
        if (value == null) {
             content = "";
         } else {
             if(value instanceof BigDecimal){
                 //conver to fortmat String
                 NumberFormat nf = NumberFormat.getInstance();
                 nf.setMinimumFractionDigits(2);
                 nf.setMaximumFractionDigits(2);
                 content = nf.format(value); 
             }else{
                 content = String.valueOf(value);
             }
         }
        return content;
    }

使用这样一个方法可以达到格式化的效果,其中value instanceof BigDecimal,表示的是字符类型是BigDecimal类型的时候执行,这里的NumberFormat就表示字符类型,下面的两句代码就表示小数点后面的精确位数。

这里还要提到NumberFormat的其他两个类型:

getCurrencyInstance(): 返回当前默认 环境的货币格式

CurrencyInstance(): 返回指定语言 环境的数字格式,一般是百分比格式

黏菌算法(Slime Mould Algorithm,SMA) 这是一篇关于黏菌算法的总结博客,包含算法思想,算法步骤,求函数最值(Python实现),算法改进等,持续更新ing 阅读详情

相关推荐

CMAC算法原理

2、K1 通过以下运算导出:若 L 的最高有效位等于 0,则 K1 是 L 的左移 1 位。3、K2 通过如下运算导出:若 K1 的最高有效位等于 0,则 K2 是 K1 的左移 1 位。采用了 AES 算法中的类似 CBC 模式的加密方式,即对前一个分组的密文与当前分组的明文进行异或操作后在加密,2、分块处理:首先将消息分成多个固定长度的块,若消息长度不是块大小的倍数,则可以使用填充来将其填充到合适的大小。1、子密钥计算,通过主密钥生成子密钥(key1,key2),子密钥用于最后一个块处理;

sky的博客 1658

Java中使用BigDecimal注意点

DigDecimal使用注意点

weixin_43999182的博客 943

OpenVPN 新增 windows 客户端

虚拟私人网络(Virtual Private Network,简称VPN)是一种网络技术,它允许用户通过公共网络(如互联网)建立一个安全的连接通道。本文介绍如何添加 windows 客户端。

利昂的技术存档 3769

BigDecimal使用注意点

为什么要使用BigDecimal 浮点数没有办法是用二进制进行精确表示,所以进行计算的时候某些情况会出现精度丢失的问题。 精度丢失示例 public class BigDecimalTest { public static void main(String[] args) { System.out.println(0.05 + 0.01); System.o...

hzw138144的博客 734

零基础实战:YOLO检测头自定义替换全攻略

本文为零基础用户提供了YOLO检测头自定义替换的完整实战指南。通过将检测头比作汽车的“方向盘”,文章详细阐述了为何需要替换、如何寻找和集成新检测头模块、修改配置文件以及最终训练验证的全过程,旨在帮助用户针对特定任务(如小目标检测)提升模型性能。

perl8的博客 255

TAS5805MPWPR实战:数字音频功放从选型到量产全流程指南

数字音频功放将I2S数字信号直接转为PWM驱动扬声器,省去传统DAC与模拟运放链路,在高保真、低BOM与紧凑PCB之间找到平衡。其核心在于内置可编程DSP,支持多段PEQ、DRC等数字处理,通过I2C配置即可完成调音,而不占用主控算力。这类方案广泛应用于蓝牙音箱、Soundbar、智能音频模组等产品,但实际落地时常遇到I2C通信不稳定、EQ未生效、底噪超标、DC检测误触发等工程问题。从电源布局、LC滤波参数到PurePath Console工具链的使用,再到量产固件加载与故障排查,都需要系统化方法论支撑。本

weixin_29164843的博客 220

Java BigDecimal类型的使用和注意点

在金融相关的项目中,BigDecimal类被广泛用于精确的数值、金额的计算。记录如何使用以及在使用BigDecimal的过程中,存在的要注意的几个坑。

qq_40623672的博客 1108

[模型部署]-[LLM]昇腾部署Qwen3-Coder-30B-A3B-Instruct

摘要:本文介绍了在Ascend NPU上部署Qwen3-Coder-30B-A3B-Instruct大模型的实践过程。通过vLLM-Ascend框架,详细说明了环境准备(CANN 8.1、PyTorch-NPU 2.5.1等)、模型下载、容器启动及服务部署步骤,包括vLLM服务的启动参数配置和接口测试方法。测试结果显示在当前2卡910B3配置下性能表现仅为8token/s(1并发),并指出流式调用时存在无法输出usage信息的问题。该方案为Ascend平台私有化部署大模型推理服务提供了参考实现。

1671

BigDecimal注意点

BigDecimal注意点

weixin_43522117的博客 236

YOLOv5 实现 10 种热力图可视化方式教程 | GradCAM XGradCAM ScoreCAM LayerCAM HiResCAM EigenCAM....

基于梯度计算类激活图,是最经典的热力图生成方法之一。Grad-CAM的改进版,通过引入梯度加权的方式,提高了热力图的定位精度。基于类别的得分计算类激活图,对噪声具有更强的鲁棒性。基于特定层的特征图计算类激活图,可以灵活选择不同的层进行分析。通过上采样将低分辨率的特征图恢复到原始图像大小,提高了热力图的分辨率。基于特征图的特征向量进行PCA降维,得到更简洁的热力图。对Grad-CAM的进一步改进,通过加权平均的方式,提高了热力图的质量。基于积分梯度的方法,可以解释模型对输入的每个特征的贡献。

weixin_39818775的博客 2374

Claude Code 处理长任务 + Cursor 专注交互:双栈协作的 3 种分工场景与响应提速 35% 实测

揭示 Claude Code 与 Cursor 在 AI 编程中的本质分工:Claude Code 作为离线式架构师处理跨文件、带约束的长链路重构(如单体拆微服务),Cursor 作为现场交互工程师专注秒级局部编辑;提出按任务切片动态切换的三种工程化协作场景,并给出结构化上下文构建、约束型 Prom

weixin_28728443的博客 123

java BigDecimal 遇到的坑 BigDecimal 注意点事项 BigDecimal 比较大小

java BigDecimal 遇到的坑 BigDecimal 注意点事项 BigDecimal 比较大小 一、遇到问题 在使用 java.math包的 BigDecimal类进行高精确度运算时,发现在使用构造方法 new BigDecimal 和 BigDecimal.valueOf 方法创建的 BigDecimal对象,居然不相等的情况,此处容易暗生bug,且难以发现,故记...

HaHa_Sir的博客 3558

数据处理和分析之数据聚类:层次聚类(Hierarchical Clustering):单链接层次聚类方法

单链接层次聚类(Single-Linkage Hierarchical Clustering)是凝聚型层次聚类的一种,它基于数据点之间的最小距离来定义聚类间的相似性。在单链接层次聚类中,两个聚类之间的距离定义为这两个聚类中任意两个数据点之间的最短距离。这种聚类方法倾向于形成链状或线性的聚类,因为聚类的边界是由最远的数据点决定的,而不是聚类的平均或中心位置。单链接层次聚类通过计算簇间最近点的距离来决定簇的合并,这种方法简单直观,但可能导致簇的形状不规则,尤其是在数据点分布不均匀的情况下。

2401_87715305的博客 1443

BigDecimal类及用法注意点

一、BigDecimal类的作用: BigDecimal 类是针对大小数处理的类。在商业计算中,对数字精度要求较高,必须使用 BigInteger 类和 BigDecimal 类,它支持任何精度的定点数,可以用它来精确计算货币值。 二、BigDecimal类最常用的传参方式: //构造方法参数是字符串(推荐方式) BigDecimal b1 = new BigDecimal("1.03"); System.out.println(b1); //第二种传参方法 BigDecimal b2 = Big

CodeBlues的博客 1087

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

BigDecimal 注意点

BigDecimal d1 = new BigDecimal(1.0); BigDecimal d2 = new BigDecimal(0.2); BigDecimal d3 = d1.divide(d2); System.out.println(d3); 结果是这样 Exception in thread "main" java.lang.ArithmeticException: No...

qq_33276865的博客 189

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java中BigDecimal的使用demo和一些注意点

项目中平时一般的计算使用浮点型和整型是可以满足要求的,有时候对精度要求较高的时候上面的方法不能满足。 这个时候就要使用BigDecimal了 直接上demo: BigDecimal a = new BigDecimal("99999999999.0215482"); BigDecimal b = new BigDecimal("99999999998.0215481"); Sy...

现役码农的博客 686

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java BigDecimal 一些注意点

为什么要有BigDecimal ,他是干什么的float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候就要使用BigDecimal啦。什么是BigDecimalBigDecimal 由任意精度的

两亩半地 1189

BigDecimal使用时注意点

BigDecimal使用时注意点: 1、实例化要使用参数类型为string的构造器,避免在为double类型的数值时精度丢失; 2、在指定保留小数位时一同指定保留方式,一般使用BigDecimal.ROUND_HALF_UP,即四舍五入; 3、在使用除法方法divide时指定保留小数、保留方式,避免无法整除而产生无限循环小数,而抛出异常; 4、在使用compareTo方法进行比较,返回值为-1表示前小后大,0表示相等,1表示前大后小; 注:在使用过程曾发生Rounding necessary、java.la

m0_48108641的博客 357

关于BigDecimal日常使用中的一些注意点

关于BigDecimal日常使用中的一些注意点 最近在公司的价格计算需求中,因为精度的需要,使用到了BigDecimal。但是本人在使用BigDecimal踩到了一些坑,特此记录一下,并且希望能够帮助到后来者。 BigDecimal的初始化赋值 关于BigDecimal的初始化问题,我这里强烈建议大家采用String类型对其进行数据初始化,因为采用基本数据类型初始化再进行运算会出现很奇怪的运算结果: //采用String进行初始化赋值 BigDecimal num = new BigD

weixin_44653963的博客 2518

Bigdecimal使用注意点

当我们使用BigDecimal的时候,若创建BigDecimal时使用了其构造函数“BigDecimal(double val) ” 或者“BigDecimal(int val)”,则仍然会有进度丢失的问题,想要避免经度丢失的问题,可以使用构造方法“BigDecimal(String val) ”,或者使用静态方法“valueOf(double val)”。 例: BigDecimal a = new BigDecimal(14); BigDecimal b = new BigDecimal(0..

XXX1238XGH的博客 237

BigDecimal的使用,加减乘除、大小比较及注意点

加减乘除 public BigDecimal add(BigDecimal value); //加法运算 public BigDecimal subtract(BigDecimal value); //减法运算 public BigDecimal multiply(BigDecimal value); //乘法运算 //除法运算,第二个参数为精度数,第三个参数为精度类型...

小葫芦的博客 1997

拒绝背锅!Java 中使用 BigDecimal 一些需要注意的点~

1)

Y1zH1yuan的博客 763

Java:使用BigDecimal除法时需要注意的点

Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算

u012276796的博客 408

【Java常见错误案例】BigDecimal使用的注意点

Java常见错误总结

自律使我自由 1408

Hutools的BeanUtil.copyProperties对String转BigDecimal的注意点

进去,这里就是拷贝方法的主题逻辑地方,首先会判断 源对象不为空再进行拷贝,接下来的一堆拷贝参数的处理,这里我进行拷贝的时候没有传CopyOptions相关参数,因此会跳过,到下面就是遍历目标对象的属性值,先判断源对象是否有相同的属性字段名称,存在再调用value方法获取到相应的值并赋值给目标对象。继续进入Number的convert 内,首先进入的时抽象基本类AbstractConverter的convert方法,这里不再关心getValue方法的返回值,它会返回源对象的空字符串,接着看下面的数据转换,

qq_43801592的博客 1648

BigDecimal中divide方法,使用RoundingMode ,小数位保留注意点

BigDecimal四舍五入除法注意点

wd402922965的博客 4458
上一篇: java中StringBuffer和StringBuilder的区别
下一篇: Hibernate 一对多 多对一 非主键 问题
lb8607
博客等级 码龄18年 17粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值