当前位置: 首页 > news >正文

记一个使用BigDecimal所有类型变为整数的问题

场景

通过 Excel 导入数据,数据中包含金额。数据库类型 decimal(18, 6)

问题

Excel 导入后所有的金额列都被四舍五入。经过测试,只有数据有整数时所有数据才会被四舍五入,全部为浮点类型没有问题。

解决

强制设置小数位数

// RoundingMode.HALF_UP 为舍入参数,相当于小数位大于6时截断位的四舍五入
new BigDecimal(infoImport.getMoney()).setScale(6, RoundingMode.HALF_UP);

原因

整数类型字符串转为 BigDecimal 类型时,默认的小数位为 0 从而影响了其他数值,具体为什么会影响其他数值暂时未知,可能是 Mybatis 或是 SqlServer 的问题。如果您知道,欢迎评论解答~

相关文章:

  • Qt基础:资源文件
  • AI提示词:邮件优化大师
  • 原码,补码,反码
  • 解决STM32CubeMX中文注释乱码
  • Springboot学习笔记4.1
  • GRPO训练下的参考模型选择
  • 响应式网站模板 html网站模板 开源网站模板下载
  • 前端算法实战:大小堆原理与应用详解(React中优先队列实现|求前K个最大数/高频元素)
  • 【Mysql】之事务详解
  • PyInstaller 在导入 moviepy.video.fx.all 模块时发生了崩溃
  • deep-sync开源程序插件导出您的 DeepSeek 与 public 聊天
  • 解决 LRU 缓存中的“堆使用后释放”问题
  • 印度股票实时数据API接口选型指南:iTick.org如何成为开发者优选
  • 安装gvm后普通用户模式下无法使用cd切换目录
  • 微信小程序开发:开发实践
  • Table as Thought论文精读
  • Qt5 Mac系统检查休眠
  • AI:机器学习模型 - 分类
  • Open-Sora:开源AI视频生成的新星
  • 计算机硬件