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

关于“前导零”的问题记录,也就是(0.1)和.1这种数据处理问题

1、今天排查问题的时候发现页面金额数据显示错误,经过查询发现数据库存的也是有问题的,该功能是导入数据的时候出现的问题,由于数据类型是VARCHAR的,所以任何数据都能导入(导入是封装服务,无法更改或者更改麻烦)

2、导入的时候没处理好导致金额数据忽略小数点前面的0也就是前导零,例如:Excel中数据是0.1、-0.1这种,但是导入数据库变成.1、-.1,这种奇葩数据。但是在利用数据的时候又发现没问题。

3、说明是使用的时候处理的时候会补全?抱着这个想法简单测试了下,一般在处理数据这种都会对数据进行转换,比如常用的Double等,经测试在很多语言环境下,这种String转Double都会进行前导零的补全(以前没怎么注意)。

4、虽然不影响使用,但是这始终是一个问题,所以还是建议在进行存储的时候就处理好,避免数据展示和使用的时候出乱子。

 页面展示:

数据库:

测试类,java、JavaScript、python等亦有这种处理

double value = Double.parseDouble("-.88254"); // 结果: -0.88254
BigDecimal value2 = new BigDecimal("-.88254"); // 结果: -0.88254
double value = Double.parseDouble(".434"); // 结果为 0.434
BigDecimal value2 = new BigDecimal(".434"); // 结果同样为 0.434

虽然Java、JavaScript等语言在String转Double时会自动补全前导零不影响使用,但建议在数据存储时就规范处理,避免潜在问题。测试显示Double.parseDouble(.434)和BigDecimal都能正确转换(0.434),但数据源头标准化更可靠。

http://www.dtcms.com/a/298643.html

相关文章:

  • streamyfin(世博会)android 编译
  • 0人工沟通,它如何用AI撬动海外B端9400亿采购市场?
  • Round-Robin仲裁器
  • <HMI><威纶通><触摸屏>基于威纶通MT8106iQ触摸屏,实现自定义登录窗口(优化)
  • 内核驱动相关知识点
  • 【Agent】Common Ground 团队协作模型:Partner、Principal 与 Associate
  • 数据结构自学Day14 -- 归并排序
  • 正则表达式 \b:单词边界
  • 模拟flink处理无限数据流
  • WAIC2025预告|英码深元AI一体机将亮相华为昇腾展区,以灵活部署的能力赋能行业智能化转型
  • 学习:JS[6]环境对象+回调函数+事件流+事件委托+其他事件+元素尺寸位置
  • ReVQ (Quantize-then-Rectify,量化后修正)
  • 笛卡尔积规避:JOIN条件完整性检查要点
  • FreeRTOS—互斥信号量
  • Sweet Home 3D:一款免费的室内装修辅助设计软件
  • 【集合】JDK1.8 HashMap 底层数据结构深度解析
  • 第二章: 解密“潜在空间”:AI是如何“看见”并“记住”世界的?
  • 深入解析C语言三路快速排序算法
  • 动态规划:从入门到精通
  • 多品种小批量如何实现柔性排产?
  • 无感交互,创意飞扬:AI摄像头动捕赋能中小学AI人工智能实训室
  • Python Requests-HTML库详解:从入门到实战
  • 环境变量-进程概念(7)
  • 对自定义域和 GitHub 页面进行故障排除(Windows)
  • 批改作业小工具(一)-read report
  • InfluxDB Line Protocol 协议深度剖析(一)
  • 07 51单片机之定时器
  • 10BASE-T1S核心机制——PLCA参数详解
  • 关于AI编程的分析报告
  • 【通识】算法案例