bigDecimal存到数据库后变成0

简单小问题,哪种方式会输出0.00? 知道结果去推测出现结果的原因永远比不知道结果去推测结果靠谱那我们就来分析一下为什么?有两个出发点去分析直接去看源码,看看setScale方法到底做了啥分析这两种方式有啥不同虽然这是一个很简单的问题,但平时的使用中还是很容易被忽视的。而这个问题如果忽略了,可能就是一个大坑。因为既然使用了BigDecimal对象,基本上都是进行一些精度较高的运算,而精度较高的运算很可能就涉及到金钱了,如果出问题就是很大的问题。所以分享出来,愿大家远离bug,多多写出优雅的代码。 阅读详情

检查数据库该字段,小数点栏是不是默认为0了,像这样:
在这里插入图片描述
如果是,就改成你需要该字段保留的小数点后位数,比如你要保留两位,这一栏就改成2

金额用Long还是BigDecimal 基于上述对Long和BigDecimal的优缺点分析,我们可以得出以下结论:在金额计算层面,即代码实现中,推荐使用BigDecimal进行所有与金额相关的计算。BigDecimal提供了高精度的数值运算,能够确保金额计算的精确性,避免了因浮点数精度问题导致的财务误差。使用BigDecimal可以简化代码逻辑,减少因处理精度问题而引入的复杂性。而在数据库存储方面,我们需要根据具体需求进行权衡。 阅读详情

相关推荐

银行java程序员面试第1集 BigDecimal

1.Java中存储金额用什么数据类型?               因为float和double都是浮点数, 都有取值范围, 都有精度范围. 浮点数与通常使用的小数不同, 使用中, 往往难以确定. 常见的问题是定 义了一个浮点数, 经过一系列的计算, 它本来应该等于某个确定值, 但实际上并不是! 金额必须是完全精确的计算, 故不能使用double或者float, 而应该采用java.math....

hqc_xds的博客 8339

Mybatis Plus框架配置数据库存取 BigDecimal数据末尾0去除

公司系统在存储金额类的float数据时,需要用到BigDecimal数据类型,但是末尾0用户一般不想看到,因此需要配置Mybatis Plus。PaginationInnerInterceptor,实现插入数据库和返回数据的时候bigDecimal末尾0去除。

蓝e的专栏 2002

String类型转BigDecimal类型并相加;从数据库中查询出来的String类型的数值(小数),如何转换为BigDecimal类型的,并算总和

String类型转BigDecimal类型并相加 大家好,这是我第一次写博客,也不知道怎么写,就把我这次做项目过程中遇到的问题和经验跟大家分享哈 看代码吧 首先在Dao层中建一个interface,返回值是BigDecimal ,我才开始做的时候返回值是double的,后面算出来结果和小数点位数不正确(原因是:BigDecimal是不可变类,它的数值是固定的,add等操作只会返回一个新的对象,不会...

小白learn编程 3817

笔记——BigDecimal存储到数据库时decimal小数自动变为0

今天做支付模块,处理金额的时候,发现存储的bigDecimal("0.1"),存储到数据库中变为了0.。 如下图: 检查了一下日志,发现存储的数据的确没有问题,因此将问题的根源确定到了数据库的头上。 后来才发现,在建表的时候,将小数点默认为0了,如下图。 这真是太呆瓜了。果断改了为了4。 现在就没有问题了。 所以在使用decimal类型的数据的时候,一定要记得精度的设...

Searchin_R的博客 1万+

数据库小技能:字段处理(BigDecimal 元转分,与0比较大小,bigDecimal格式化注解)| JsonFormat & DataFormat

如果唯一性的其中一个字段时可选的,统一保存""空串,便于比较。LocalDate 转LocalDateTime。多个代理商编号时,请用英文逗号,分隔。数据库小技能:mysql的DB规范。请求参数LocalDate。

专注于计算机研发知识和资讯分享 1330

CAPL编程的催化剂——CAPLdll的实现

CANoe作为一款功能强大的总线开发及测试工具,不仅仅是因为其丰富的库函数,最重要的是其兼容了多种编程语言,可以实现灵活的开发,极大的解决了纯CAPL编程所带来的限制,如通过动态链接库(DLL)来实现复杂函数的编写,使其能够在CAPL中可以调用,下面将对DLL的实现进行分析。capldll.cpp这个文件初看相当复杂,从整体上来说,这段代码主要包含了两部分:自定义函数实现和回调函数定义,今天的主要任务是实现自定义函数,这里的函数定义与普通函数定义差不多,只是利用了CAPL的格式。在VS2017工程中打开。

车载控制器AutoSAR软件开发工程师 4646

Bigdecimal传输数据变为0

昨天Bigdecimal 类型传给第三方调用时发现,数据变为了0;原因是因为Hession 序列化 ,Hession版本太低,需要升至 把4.0.33版本替换成4.0.37就可解决此问题 或者 增加下面两个文件,打入hessian包。 /META-INF/hessian/serializers,内容如下: java.math.BigDecimal=com.caucho.hessian.io.Big...

lvyinxiazheyang的博客 4041

RK3588交叉编译实战:从环境搭建到程序部署

本文详细介绍了在X86主机上为RK3588开发板搭建交叉编译环境的完整流程。从获取ARM工具链、配置sysroot,到实战编译Hello World和Qt应用程序,并提供了部署方法和常见问题解决方案。通过交叉编译,开发者可以在高性能PC上高效开发,并在ARM架构的RK3588上运行程序,大幅提升嵌入式开发效率。

weixin_29191669的博客 274

Java BigDecimal类型存数据库

Java BigDecimal类型存数据库

m0_57085190的博客 975

深入解析ST MC SDK(WorkBench)工程结构:从零搭建FOC电机控制项目

本文深入解析了ST MC SDK(WorkBench)工程结构,详细介绍了如何从零搭建FOC电机控制项目。通过ST MC SDK和WorkBench工具链,开发者可以快速配置电机类型、控制策略等参数,生成完整的FOC控制工程。文章还拆解了工程结构中的核心控制模块、HAL硬件抽象层、芯片系统初始化和电机控制算法库,并提供了无传感器FOC实战技巧和常见问题排查指南,帮助开发者高效掌握STM32F407ZGT6开发板上的FOC电机控制技术。

weixin_29173777的博客 410

NV 英伟达2022数字芯片笔试题

作者:数字IC打工人 链接:【开卷】第27期 NV 英伟达2022数字芯片笔试题_笔经面经_牛客网 来源:牛客网 1、Single Choice: Given thefollowing FIFO and rules, how deep does the FIFO need to be to preventunderflow or overflow? RULES: clk_A=25MHz; clk_B=100MHz; en_B is periodically asserted: period.

weixin_44072819的博客 6385

【Mybatis】Mybatis将String类型的0存到数据库中的number类型字段中,变成了空;

一、问题 Mybatis将String类型的0存到数据库中的number类型字段中,变成了空; 二、分析 自己写了一个自动写代码的脚本,带入springBatch后,读取文件时,少了序列号0-9的记录(10笔一提交),其他遇到包含序列号为0的也都出现一样的问题,慢慢缩小问题源,发现是这个String类型的0存入number类型的数据库导致;报错报的也是无法将null插入数据库;通过debug发现,...

陶洲川的博客 3950

深入解析USB3.0一致性测试的关键技术与实践指南

本文深入解析了USB3.0一致性测试的核心技术与实践指南。文章阐述了测试如何确保设备在5Gbps高速传输下的信号完整性、电源管理合规性及协议兼容性,并提供了从测试系统搭建到完整流程执行的实战经验,帮助工程师有效应对高速信号、电源与兼容性三大核心挑战。

weixin_29164091的博客 277

BigDecimal去掉小数点后无用的0

BigDecimal去掉小数点后无用的0

qq_31564573的博客 2万+

麒麟系统grub被锁怎么办?双密码遗忘救援指南(实测V10 SP3版本)

本文详细介绍了麒麟系统V10 SP3版本在GRUB和root密码双遗忘情况下的救援指南。通过ISO镜像进入救援模式,结合单用户模式操作,实现密码重置与系统权限恢复,特别适用于等保合规环境。

384

10倍开发者的 Dify 魔法书:从零构建全栈 AI 应用

“不懂底层算法,也能开发爆款 AI 应用吗?” 答案是:绝对可以。 Dify 正在重新定义 AI 应用的开发范式——通过可视化的低代码平台,将原本需要数周的开发周期压缩到几小时。无论你是前端、后端、产品经理,还是渴望破局的独立开发者,这都是你不可错过的红利。 我们将手把手教你利用 Dify 快速接入百模大战,零代码搭建企业级知识库,并一键发布你的专属 AI 助手、智能客服和自动化工作流。 告别重复造轮子,掌握 Dify,一个人就是一支 AI 团队。现在上车,开启你的 10 倍速开发之旅!

davidwang456的专栏 680

mybatis 中BigDecimal中的0存为null的坑

问题点: 做mybatis的插入和修改操作时,java中类型为Bigdicemal时,且值为0时,存入到数据库中的值为null,而不是0,其它的非0值正常。mybatis中的类型判断是弱类型,而不是java中的强类型。mybatis会自动把BigDecimal类型转为string,即0变为null啦。可以看到是 Begdecimal 类型,对应查出来的日志如下: 可以看到,把 去掉bigDecimalNum!

yuyue_999的博客 2257

SpringBoot项目搭建

SpringBoot项目搭建

私信可回答各种问题~ 1019

Java——记录BigDecimal与0比较的一个坑

BigDecimal 的 0 值 equals 问题,采取 compareTo 解决

专注写bug 2909

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

mybatis 中BigDecimal中的0存为null的问题解决

在做mybatis的插入和修改操作时,发现了奇怪的问题, java中类型为Bigdicemal时,且值为0时,存入到数据库中的值为null,而不是0,其它的非0值正常。 发现问题的原因是mybatis中的类型判断是弱类型,而不是java中的强类型。 错误语句如下: <if test="bigDecimalNum !=null and bigDecimalNum !=''">...

lao_pei的专栏 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

BigDecimal用法,慢慢用到的就会增加

文章目录一.简介二.加减乘除三.乘除以后保留两位小数四.直接保留两位小数(四舍五入)1.setScale简单用法五.BigDecimal的比较1.BigDecimal的非0判断2.BigDecimal之间的比较 一.简介 BigDecimal 在 MySQL中为 decimal ,这个也是可以存储小数点的数值,相比较于 double来说,decimal的精度更加的准确,如果用这些小数点的小伙伴们,一定要记住 decimal(10,2) 这也就是保留两位小数,如果不写保留几位的话,存入之后都会被抛弃 二.加减

Dreamlike_的博客 945

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

mysql bigdecimal 默认值_BigDecimal的常用方法

请看题:示例1问, 结果是多少? 0.01?No! 结果是0.009999999999999998!为什么会这样呢? 因为float和double都是浮点数, 都有取值范围, 都有精度范围. 浮点数与通常使用的小数不同, 使用中, 往往难以确定. 常见的问题是定义了一个浮点数, 经过一系列的计算, 它本来应该等于某个确定值, 但实际上并不是! 金额必须是完全精确的计算, 故不能使用double或者...

weixin_32192681的博客 6732

Java返回前端Bigdecimal类型数据时“0E-8“及小数点多余0的问题

Java Bigdecimal类型字段返回前端时0对应成"0E-8"及返回值有多余的0问题

黑不只是一种颜色 2万+

java向上取整去掉末尾的0_BigDecimal去除末尾多余的0

Java有自带的 stripTrailingZeros() 方法用于去除末尾多余的0 BigDecimal num = new BigDecimal("100.000"); BigDecimal numNoEndZero = num.stripTrailingZeros(); //numNoEndZero :1E+2 System.out.println(numNoEndZero.toString...

weixin_36339234的博客 2903
上一篇: Comparison method violates its general contract!null
下一篇: PostgreSQL根据条件更新字段值或追加信息STRPOS(string, substring)函数使用及LIKE函数对比
沉没成本不参与重大决策
博客等级 码龄7年 35粉丝 80原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值